2014-09-24 74 views
1
NoMethodError: undefined method `assert_true' 

在ruby中使用测试单元运行测试时,出现以上错误。测试单元宝石和耙版本低于,NoMethodError:undefined method`assert_true'

test-unit (2.5.5) 
rake (10.1.0) 

样品测试文件: -

require 'test/unit' 

class Sample < Test::Unit::TestCase 

    def setup 
    # code block 
    end 

    def test_sample 
    assert_true("test"=="test") 
    end 

    def teardown 
    # code block 
    end 

end 

如何解决这个问题?

+0

你有一个我们可以看看的最小例子吗? – awendt 2014-09-24 07:06:54

+0

@awendt我已经更新了这个问题。 – karan 2014-09-24 07:25:42

+2

看起来'require'test/unit''实际上是从标准库中加载'test/unit'库,而不是'test-unit' gem中的'test/unit'库。你能否确认这个gem实际上是安装在你正在运行你的测试的Ruby版本上,而且它实际上是在'$ LOAD_PATH'上? – 2014-09-24 08:14:29

回答

3

我用下面的方法解决了这个问题。无需更改断言语句。

require 'rubygems' 
gem 'test-unit' 
require 'test/unit' 

class Sample < Test::Unit::TestCase 

    def setup 
    # code block 
    end 

    def test_sample 
    assert_true("test"=="test") 
    end 

    def teardown 
    # code block 
    end 

end 
0

从1.9.2开始,测试/单元是minitest的一个包装,实现了directly in the ruby source code。在新实现中不存在assert_true方法,只需使用assert,正如Simon Brahan已经提出的那样。所以你所看到的宝石来源已经不再使用了。现在相关的文档是here

相关问题