2011-01-30 3 views
4
assert_nothing_raised do 
    @board.make_move(0,0,Board::HUMAN) 
end 

и документы говорят:Ruby: как я могу использовать assert_nothing_raised?

Passes if block does not throw anything. 

Example: 

assert_nothing_thrown do 
    [1, 2].uniq 
end 

мой метод make_move:

def make_move(x, y, player) 
    return false 
end 

Я получаю ошибку:

test_can_make_valid_move_in_the_first_row(BoardTest): 
ArgumentError: wrong number of arguments (1 for 2) 
+0

Какое тестирование рамки вы используете? Собственный блок/тест Ruby? [MiniTest] (https://github.com/seattlerb/minitest)? Что-то другое? – Phrogz

+0

Единичный тест Руби. – NullVoxPopuli

ответ

4

Этот следующий код работает для меня. Работает ли это для вас?

require 'test/unit' 
require 'test/unit/ui/console/testrunner' 

class MyTestClass < Test::Unit::TestCase 
    def test_something 
    assert_nothing_raised do 
     p 'hi' 
    end 
    end 
end 

Test::Unit::UI::Console::TestRunner.run(MyTestClass) 

Я думаю, вы используете assert_nothing_raised правильно. Попробуйте заменить

@board.make_move(0,0,Board::HUMAN) 

с чем-то более простое, как

p 'hi' 

и посмотреть, если это работает. Также попробуйте прокомментировать весь другой код в своем тесте.