Я открыл irb и ввел:
require 'test/unit'
но когда я использовал метод assert_equal
, я получил следующую ошибку: NoMethodError: undefined method 'assert_equal' for main:Object
. Почему это происходит даже после запроса «test/unit»?
Я открыл 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: неопределенный метод `assert' для 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