3

如果作为 Rails 应用程序中的 RSpec 或 Cucumber 测试的一部分,我创建了一个模型并将其存储在测试数据库中,那么该记录将保留多长时间?

我很确定记录会在每个测试周期的最后(或开始?)被清除,因为它们似乎不会干扰我的测试套件的连续运行,但是不同黄瓜功能和场景之间的记录是否会持续存在,还是在不同的 RSpec 测试之间?

4

1 回答 1

2

如果您正在使用事务,则更改将在每个示例之后回滚。

如果您不使用事务,则更改将持续存在,除非您使用其他技术将其清除。这是请求规范的典型案例;因此需要类似 database_cleaner 或手动方法来清除测试数据库。

RSpec 的默认 spec_helper 文件包含以下行:

  config.use_transactional_fixtures = true

这意味着将使用交易。

于 2012-08-24T21:56:18.677 回答