我没有那么少的测试,所以为了节省时间,我使用以下配置跳过登录过程:
config.before :all, type: :feature do
stub_login
visit "/auth=admin:123456&origin=http://#{Capybara.current_session.server.host}:#{Capybara.current_session.server.port}"
end
但是现在我必须测试登录屏幕,我在泡菜中:任何尝试进入登录屏幕(访问或注销)将导致登录页面,因为存根返回日志的相关数据在州。
我想知道如何取消此特定配置?有没有办法标记它,以便特定的测试(或规范)可以忽略它?
思考&提示?感谢
答案 0 :(得分:0)
最终我拆分了“config.before:all”:
config.before :all, type: :logged do
stub_login
end
config.before :all, type: :feature do
visit '.......'
end
和来自的测试:
describe 'some tests with login', type: [:feature, :logged] do
.....
为:
describe 'login screen tests', type: :feature do
.....
另一个更好的解决方案是:
config.before :all do |spec|
not_logged = spec.class.metadata[:not_logged]
if not_logged
......not logged script
else
......logged script
end
和规范:
describe 'login view', type: :feature, :not_logged=> true do
.....
end