2014-11-24 41 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

相關問題