【发布时间】:2012-05-30 12:00:33
【问题描述】:
我正在使用 Rspec 和 Capybara 编写集成测试。我注意到在测试 activerecord 选项的创建时,我经常必须执行相同的代码。
例如:
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 并填写面向用户的表单要简单得多。
我尝试定义一个创建新记录的函数,但由于某种原因感觉不对。这方面的最佳做法是什么?
【问题讨论】:
-
请记住所有
Examples(这是您的it代码)都包含在事务中。我认为这对@Adam 回答很上瘾
标签: ruby-on-rails ruby rspec capybara