【发布时间】:2015-10-26 14:45:37
【问题描述】:
在 rails rspec 中,我正在编写执行此操作的测试用例:
after(:each) do
DatabaseCleaner.clean_with(:truncation)
end
我需要在每次测试运行后清理数据库。但这会影响我的测试性能并使它们变慢吗?
【问题讨论】:
-
您的问题是“如果我的计算机必须做更多的事情,那会比它做更少的事情需要更长的时间”吗?如果是这样,那么是的,很明显。
-
但它会显着减慢我的测试速度,并且使用 after(:each) 是一种不好的做法
-
取决于“显着”的含义。我想你会注意到不同之处。不如先试试看,然后再决定能不能忍?
-
每次测试后尝试
DatabaseCleaner.clean_with(:transaction)。它会加快你的测试速度(但如果你在玩EventMachine,事务策略可能不起作用,所以你必须坚持截断策略)。 AFAIK 在每次测试后清理数据库是一种很好的做法,因为它消除了由数据库中的历史数据引起的假绿。
标签: ruby-on-rails ruby activerecord rspec