私はirbを開いて入力しました:
require 'test/unit'
しかし、assert_equal
メソッドを使用すると、次のエラーが発生しました: NoMethodError: undefined method 'assert_equal' for main:Object
. 「test/unit」を要求した後でも、なぜこれが起こるのですか?
assert_equal
はのサブクラスで定義されてTest::Unit::TestCase
いるため、そのクラスでのみ使用できます。include Test::Unit::TestCase
これらのメソッドを現在のスコープにロードすると、ある程度成功する可能性があります。
テストを短いファイルに書き込んで、次のコマンドで実行する方がよい場合があります。ruby ./my_file.rb
ビルドされたRubyエラーテストで使用できます
raise "Message you want to throw when error happens" if/unless "Condition when you want to throw the error "
また
アサーションを使用しようとしたときに「NoMethodError: undefined method `assert' for main:Object」のようなエラー メッセージが表示された場合は、これをスクリプトの先頭に追加します。
require "test/unit/assertions"
include Test::Unit::Assertions
アサーションは次のように使用されます。
class Gum
def crisis; -42 end
end
# and as for testing:
require 'test/unit'
class GumTest < Test::Unit::TestCase
def test_crisis
g = Gum.new
assert_equal -42, g.crisis
end
end