我目前在使用FactoryGirl和Rspec测试我的模型,这很好,但是非常慢。每个模型都有数百个测试,每个测试需要大约30秒才能运行。
核心问题在于,当我创建一个用于测试的对象时,我使用的是FactoryGirl.create()
方法。这会访问数据库,肯定比使用build
或build_stubbed
慢。但是如果我只使用build,那么我就永远不会知道是否遇到了数据库错误(例如尝试将空值写入我指定为非空的列)?
有没有办法兼顾两者?或者我应该在模型/单元测试之外的某个地方显式地测试数据库集成部分?