RoR :在测试前保持记录
RoR : staying logged before test
我正在尝试 运行 在 Rails 上对 Ruby 进行一些测试,但我不知道如何在测试时保持记录状态。我试过了:
setup do
sign_in FactoryGirl.create(:admin)
end
但是我得到一个错误(重复),因为它在 EACH 测试之前 运行ning。
duplicate key value violates unique constraint "index_users_on_email"
https://github.com/plataformatec/devise#integration-tests
如何在所有测试中只记录一次?
曾将此作为评论,但无法对其进行格式化,因此将其放在这里。
为什么所有测试只登录一次?
理论上,隔离测试的目的是让每个单元 运行 就好像它是一个单独的交互。
如果你想在整个套件之前调用一次,你可以把它放在规范助手中:
config.before(:suite) do
# Do Something Once
end
你说的是功能规格吗?楷模?控制器?
但是看看您发布的内容,您似乎在谈论功能规范,在这种情况下,我会说不要那样做。让每个规格的用户登录。
旁注:
注意到您遇到的错误,您需要确保在 运行 每个规范之前清理您的数据库。请查看 Database Cleaner Gem。这将允许您为每个规范重新创建该用户。
我正在尝试 运行 在 Rails 上对 Ruby 进行一些测试,但我不知道如何在测试时保持记录状态。我试过了:
setup do
sign_in FactoryGirl.create(:admin)
end
但是我得到一个错误(重复),因为它在 EACH 测试之前 运行ning。
duplicate key value violates unique constraint "index_users_on_email"
https://github.com/plataformatec/devise#integration-tests
如何在所有测试中只记录一次?
曾将此作为评论,但无法对其进行格式化,因此将其放在这里。
为什么所有测试只登录一次? 理论上,隔离测试的目的是让每个单元 运行 就好像它是一个单独的交互。
如果你想在整个套件之前调用一次,你可以把它放在规范助手中:
config.before(:suite) do
# Do Something Once
end
你说的是功能规格吗?楷模?控制器?
但是看看您发布的内容,您似乎在谈论功能规范,在这种情况下,我会说不要那样做。让每个规格的用户登录。
旁注: 注意到您遇到的错误,您需要确保在 运行 每个规范之前清理您的数据库。请查看 Database Cleaner Gem。这将允许您为每个规范重新创建该用户。