我正在使用 Rspec 和 Capybara 编写集成测试。我注意到,在测试活动记录选项的创建时,我经常必须执行相同的代码位。
例如:
it "should create a new instance" do
# I create an instance here
end
it "should do something based on a new instance" do
# I create an instance here
# I click into the record and add a sub record, or something else
end
问题似乎是 ActiveRecord 对象不会在测试中保持不变,但是 Capybara 默认情况下会在规范中维护相同的会话(怪异)。
我可以模拟这些记录,但由于这是一个集成测试,并且其中一些记录非常复杂(它们有图像附件等等),因此使用 Capybara 并填写面向用户的表单要简单得多。
我尝试定义一个创建新记录的函数,但由于某种原因感觉不对。这方面的最佳做法是什么?