我正在尝试为使用#create方法的方法编写规范,该方法写入导致问题的数据库,因为它是使用未保存到数据库的对象创建的 - 有没有人知道如何覆盖#创建,以便它在运行规范时不会尝试保存到数据库?
我收到此错误:
ActiveRecord::RecordNotSaved:
You cannot call create unless the parent is saved
答案 0 :(得分:1)
正如@Raghu指出的那样,你需要模拟/存根(参见http://blog.firsthand.ca/2011/12/example-using-rspec-double-mock-and.html)以避免实际运行create方法。你可能不想测试create是否真的有效。您更有可能测试创建是在正确的时间,正确的模型和正确的选项上调用的。
答案 1 :(得分:0)
这是use a Stub / Double的地方(以前,通常也称为“模拟”)