1

我正在尝试为使用#create 方法写入数据库的方法编写规范,该方法会导致问题,因为它是使用未保存到数据库的对象创建的——有谁知道如何覆盖#create 所以它运行规范时不尝试保存到数据库?

我收到此错误:

     ActiveRecord::RecordNotSaved:
   You cannot call create unless the parent is saved
4

2 回答 2

1

正如@Raghu 指出的那样,您需要模拟/存根(请参阅http://blog.firsthand.ca/2011/12/example-using-rspec-double-mock-and.html)以避免实际运行 create 方法。您可能不想测试 create 是否真的有效。您更有可能测试 create 在正确的时间、正确的模型和正确的选项下被调用。

于 2013-09-05T19:04:38.590 回答
0

这是使用 Stub / Double的地方 (以前并且仍然通常称为“Mocks”)

于 2013-09-05T19:06:15.897 回答