单元测试rails时,ActiveSupport :: TestCase与Test :: Unit :: TestCase

Lee*_*Lee 12 ruby-on-rails shoulda factory-bot

我最近注意到,如果我的测试子类为Test :: Unit :: TestCase,我的测试数据库在运行测试后没有被清理.如果我的测试子类是ActiveSupport :: TestCase,那么所有内容都会被正确清理.

任何人都可以解释为什么,和/或提供使用一个与另一个的解释?

我正在使用shoulda和factory_girl.

谢谢.

Luk*_*ncl 19

如果您看一下代码,您会看到ActiveSupport::TestCase有很多用于测试Rails的设置和实用程序函数.较旧版本的Rails曾经Test::Unit::TestCase与很多mixins 一起使用,但前一段时间转移到子类化.

如果您正在测试Rails应用程序,则应该是子类ActiveSupport::TestCaseActionController:TestCase控制器.生成器会自动执行此操作,因此您不必在大多数时间考虑它.