Ruby: 未定义的方法“断言”

Ruby: undefined method `assert'

我在 codeschool 上遵循此代码

string_extension_test.rb

gem "minitest", "~> 4.0"
require "test/unit"
require "string_extension"

assert "3".is_number?
assert !"Blash".is_number?

string_extension.rb

class String 
    def is_number?
        if self =~/^\d+$/
            true
        else
            false
        end
    end
end

然后我输入 ruby -I. string_extension_test.rb

但是,显示

string_extension_test.rb:6:in `<main>': undefined method `assert' for main:Object (NoMethodError)

我试过在string_extension_test.rb中添加include Test::Unit::Assertions,可以通过,但是没有测试用例。

输出将是

Finished tests in 0.013038s, 0.0000 tests/s, 0.0000 assertions/s.
0 tests, 0 assertions, 0 failures, 0 errors, 0 skips

您可能需要将测试放在继承自 Test::Unit::TestCase 的 class 中。类似于:

class StringExtensionTest < Test::Unit::TestCase
  def test_is_number
    assert '3'.is_number?
  end

  def test_is_not_number
    assert !'B'.is_number?
  end
end

将测试放在 class... 确保方法以字符串 "test"...

开头
gem "minitest", "~> 4.0"
require 'test/unit'
require 'calc'
class TestStringExtension < Test::Unit::TestCase
    def test_is_number?
      assert "3".is_number?
      assert !"Blash".is_number?
    end
end