0

当我在 Rails 应用程序上测试我的 ruby​​ 时,我遇到了最奇怪的黄瓜错误。我的功能在本地主机上完美运行。我在几个场景中有几个步骤来检查我是否在某个页面上,特别是 users#show 的模板。因此,我编写了步骤 def 并在 paths.rb 中添加了路径,并设法使此类步骤的第一步通过。然而,尽管使用了完全相同的路径,但其他步骤都失败了,我通过加薪验证了这一事实。

以下是步骤:

来自场景 3:通过

Then I should be on the "jadams" profile page

来自场景 2:失败

And I am on the "testuser" profile page

来自场景 3:失败

And I go to the "testuser" profile page

这是他们使用的步骤定义:

Then /^(?:|I )should be on (.+)$/ do |page_name|
  visit path_to(page_name)
end

When /^(?:|I )go to (.+)$/ do |page_name|
  visit path_to(page_name)
end

我定义的路径:

when /^the "([^\"]*)" profile page$/i
  user_path(User.find_by_username($1))

我验证了他们都到达了这条路径,并且找到了一个用户并且有一个 id。我什至尝试/users/1直接使用。然而我明白了:

No route matches {:action=>"show", :controller=>"users", :id=>nil}

谁能看到为什么其中一个步骤通过而其他步骤没有通过?谢谢!

4

1 回答 1

0

事实证明,有人为失败的步骤之前的步骤写了一个错误的步骤定义。

于 2013-04-10T23:32:21.467 回答