【发布时间】:2016-07-12 20:29:55
【问题描述】:
我有大约 100 个规格,在我目前正在开发的 Sinatra 项目中。 为了测试,我目前正在使用 rspec + DatabaseCleaner 和 :transaction 策略。
其中一些规范需要在数据库中创建新记录,因此它们会增加 mysql 中的自动增量表值。有没有一种方法可以使用事务策略运行我的测试,而无需使用 DatabaseCleaner 或其他 gem 增加自动增量值?
编辑:我希望 auto_increment 具有测试运行之前的值。
【问题讨论】:
-
你希望在你的 auto_increment 列中有什么值....
-
@ZafarMalik 测试运行前的值。
-
如果您在 auto_increment 列中传递自己的 id,那么它将采用您自己传递的值而不是 auto_id...所以您不必担心...但请确保 id表中不应该存在...如果您想说别的,请清除。
-
@ZafarMalik 我没有将 ID 传递给 auto_increment。当我的测试运行时,其中一些将记录插入数据库,然后将它们删除,但是 auto_increment 值不会回滚。
标签: mysql ruby rspec sinatra datamapper