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

Ошибка получения ошибок при выполнении тестов с использованием тестового блока в рубине. Тест-блок гем и реки версия ниже,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

+0

@awendt Я обновил вопрос. – karan

+2

Похоже, что 'require 'test/unit'' фактически загружает библиотеку' test/unit' из стандартной библиотеки, а не 'test/unit' из библиотеки' test-unit'. Можете ли вы подтвердить, что камень действительно установлен для версии Ruby, в которой выполняются ваши тесты, и что это действительно на '$ LOAD_PATH'? –

ответ

3

Я решил проблему, воспользовавшись следующим образом. Нет необходимости изменять утверждения assert.

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, тест/блок представляет собой обертку вокруг миниатюра, реализованную directly in the ruby source code. Метод assert_true не существует в новой реализации, просто используйте assert вместо этого, как уже предложил Саймон Брахан. Таким образом, источник драгоценных камней, на который вы смотрели, больше не используется. В настоящее время соответствующая документация составляет here.

Смежные вопросы