2014-11-24 38 views
1

我正在使用Ruby测试Codechool课程,他们使用的是Test::Unit。当我尝试require test/unit虽然它说以下内容:Ruby:Test :: Unit是否仍然存在?

Warning: you should require 'minitest/autorun' instead. 
Warning: or add 'gem "minitest"' before 'require "minitest/autorun"' 
From: 
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/test/unit.rb:3:in `<top (required)>' 
    test.rb:1:in `<main>' 
MiniTest::Unit::TestCase is now Minitest::Test. From /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/test/unit/testcase.rb:8:in `<module:Unit>' 
/

当我按照说明require 'minitest/autorun',然后再尝试运行我的测试不识别方法assert_equal

test.rb:5:in `<main>': undefined method `assert_equal' for main:Object (NoMethodError) 

那么,什么是这个交易?测试/单元不再存在吗?如果是这样的话,我该如何使用minitest运行测试? Minitest使用相同的语法还是完全不同?

回答

4

Minitest是Test :: Unit的新名称。它完全兼容。你的语法仍然可以工作于assert_equal

你确实需要把代码放到测试用例中。

例子:

require "minitest/autorun" 

class TestMe < Minitest::Test 

    def test_foo # test methods must begin with "test_" 
    assert_equal 1, 1 
    end 

end 
+0

什么是基类的名字,我的测试类应该从固有的? – 2014-11-24 07:35:14

+0

Minitest是新的名字。 – vgoff 2014-11-24 08:09:59

+0

@vgoff你是对的;我现在会调整大小写。谢谢! – joelparkerhenderson 2014-11-24 09:30:10

相关问题