当我在 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}
谁能看到为什么其中一个步骤通过而其他步骤没有通过?谢谢!