0

有几个类似的问题,但我的问题似乎不同,因为我基本上是在复制当前正在工作的文件。

我加入了一个团队,其中最后一个人留下了一个黄瓜/红宝石框架,设置如下:

  • lib/pages/page1.rb
  • 其中 page1.rb = 类 PageOne < SitePrism::Page
  • 他们只是创建一个新对象:@new_page_one = PageOne.new

我已经搜索了整个代码,看看他是否在任何地方都有“要求”或“包含”“page1.rb”、“page1”或“PageOne”,但他没有,但即使这样,当一个尝试创建一个新对象。

所以,现在我想创建一个新类,我只是将工作文件复制并粘贴到同一位置,并将所有文件重命名如下:

  • lib/pages/page2.rb
  • 其中 page2.rb = 类 PageTwo < SitePrism::Page

我遇到的问题是,当我尝试创建一个新对象时出现此错误:-@new_page_two = PageTwo.new

NameError: uninitialized constant PageTwo

知道为什么第一个有效而在这种情况下复制/粘贴无效吗?你有什么可以建议我试试我的结局吗?

4

2 回答 2

0

最后,我找到了。似乎这是这个特定项目的问题。

有一个文件正在实时加载 CLASSES,尽管它们是文件名的硬编码部分,因此找不到我的新文件,即

他们正在加载 *1.rb 页面,而我制作了一个副本并将其重命名为 page2.rb ......

于 2016-11-29T00:49:48.640 回答
0

值得指出的是,将 SitePrism 与 cucumber 一起使用将使用 Cucumbers Autoloader,因此请确保手动覆盖它,env.rb因为在该页面中的某个部分之前定义一个页面会导致失败。

确保从里到外定义页面。即最小的部分(Sections),首先是Pages。

于 2019-02-22T13:43:24.510 回答