#8 楼 @42thcoder 我最近项目也吃过这个配置的亏。 可以研究一下不同的配置效果和用况。 difference-between-truncation-transaction-and-deletion-database-strategies 这个 blog 对于选择测试框架提供了全面的角度,值得一看。 7-reasons-why-im-sticking-with-minitest-and-fixtures-in-rails
代码量多了,逻辑复杂了,有测试才能在保证重构的时候不会 break codes。如果测试是为了重构和 regression test, 该不该写就显而易见了。 假设你在修改一处小的地方,那处修改会涉及到其他的行为,难道你要去一一肉测(打开浏览器,输入表格,跳转 etc,如此做 10 次),不如 run 一下测试就知道这样的修改是否有负面影响。 项目越大,越复杂,越需要写测试。 写测试是一本万利的好事,保证了重构的效率和质量。 不过对于写 unit testing, functional testing 还是 integration testing, 个人只针对 model 写 unit test。其他就写 feature tests. 再啰嗦一句 BDD, 如果有了 unit test 和 feature test,bdd 也不是非要的。个人更喜欢 bdd 的思想而不是形式。
有使用 database_cleaner 吗?strategy 应该设置为 transaction 而不是 truncation. 不过 30 多个测试就要 40 秒,确实匪夷所思。