我有两个问题。第一个是基本的。MiniTest是UnitTest的临时替代品。所以如果你在rails中使用生成器,你会得到一堆ActiveSupport::TestCase类。如果您使用minitest (没有minitest-spec-rails),那么您可以这样做
1.must_equal 1
# instead of
assert_equal 1, 1对,是这样?所以我很困惑为什么会有一个MiniTest::Unit::TestCase类,就像railscast #327 ( paywall sry)中所描述的那样。在查看我实际使用的测试套件时,它会让人感到困惑。如果minitest是一个简单的替代品,那么我将使用minitest来执行testunit风格的rails测试。如果我取出它,我会使用testunit来运行testunit测试吗?
因此,假设我正在使用MiniTest来运行TestUnit样式测试。
require 'test_helper'
class FooTest < ActiveSupport::TestCase
end在看了destroyallsoftware关于提取域对象的截屏视频后,我受到了启发。他在避免加载test_helper.rb以加快测试套件速度方面提出了一些很好的观点,而不是求助于spork技巧(这正是我所做的)。但是,当上面提供了ActiveSupport::TestCase时,我如何避免加载test_helper.rb?
您不能使用MiniTest或TestUnit提取域对象并将它们放入库/或附加文件/中吗?
发布于 2012-09-15 00:49:50
你第一个问题的答案是“不,不正确”。Minitest不是Test::Unit的“临时替代品”。Minitest为大部分Test::Unit提供了一个更简单的实现,但不是全部。在Ruby1.9中,Test::Unit库构建在Minitest的TestCase类之上,填补了两个库之间的空白。
Minitest提供了两种编写测试的模式:经典的TestCase方法和单独的Spec DSL。与Test::Unit一样,Spec DSL也构建在Minitest的TestCase之上。所以,虽然1.9的Test::Unit和Minitest的Spec DSL都是基于Minitest的TestCase构建的,但你不能在Test::Unit中使用Spec DSL,因为它不是它的祖先。
第二个问题的答案是,如果你想使用ActiveSupport::TestCase,你就无法避免test_helper.rb。您需要使用minitest/autorun,并让您的测试类继承MiniTest::Unit::TestCase。
https://stackoverflow.com/questions/12409362
复制相似问题