4
 assert_nothing_raised do
   @board.make_move(0,0,Board::HUMAN)
 end

そしてドキュメントは言う:

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)
4

2 に答える 2

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'

それが機能するかどうかを確認します。また、テスト内の他のすべてのコードをコメントアウトしてみてください。

于 2011-01-30T16:43:18.637 に答える
3

assert_nothing_raisedは実際には何もテストしないため、絶対に使用しないでください。見る:

http://blog.zenspider.com/blog/2012/01/assert_nothing_tested.html

私はここにいくつかのさらなる考えを投稿しました:

MiniTest::Spec に wont_raise アサーションがないのはなぜですか?

于 2012-09-19T16:50:24.773 に答える