Naz*_*ain 5 cucumber ruby-on-rails-3
我devise
用作身份验证系统并创建了一个场景。
Scenario: Home page have a login page
When I go to the home page
And user is not logged in
Then I should see "Sign In"
Run Code Online (Sandbox Code Playgroud)
用于步骤定义
When /^user is not logged in$/ do
signed_in? == false
end
Run Code Online (Sandbox Code Playgroud)
我还在黄瓜世界中添加了设计助手。
World(Devise::Controllers::Helpers)
Run Code Online (Sandbox Code Playgroud)
黄瓜产生了这个错误:
And user is not logged in # features/step_definitions/web_steps.rb:260
wrong number of arguments (0 for 1) (ArgumentError)
./features/step_definitions/web_steps.rb:261:in `/^user is not logged in$/'
features/manage_home_page.feature:13:in `And user is not logged in'
Run Code Online (Sandbox Code Playgroud)
为什么会产生它以及如何修复它?
signed_in?
方法的定义是
# Return true if the given scope is signed in session. If no scope given, return
# true if any scope is signed in. Does not run authentication hooks.
def signed_in?(scope=nil)
[ scope || Devise.mappings.keys ].flatten.any? do |scope|
warden.authenticate?(:scope => scope)
end
end
Run Code Online (Sandbox Code Playgroud)
它在设计中定义,我通过将此代码World(Devise::Controllers::Helpers)
写入黄瓜的paths.rb文件将帮助程序添加到黄瓜。
我遇到了与此类似的问题,结果证明测试行与代码中其他位置的另一个步骤定义相匹配。
这里似乎不太可能,但是您还有其他可以匹配And user is not logged in
但需要参数的东西吗?
归档时间: |
|
查看次数: |
2675 次 |
最近记录: |