未定义的方法:Minitest 中的 assert_not_nil
Undefined method: assert_not_nil in Minitest
我正在尝试执行以下代码,但它给我一个未定义的方法错误:
require 'minitest/autorun'
require 'string_extension'
class StringExtensionTest < Minitest::Test
def test_humanize_returns_nothing
assert_not_nil "Yo".humanize, "humanize is returning nil."
end
end
我正在尝试从 Codeschool 的 Rails 课程中执行这段代码,但似乎没有方法 assert_not_nil
。我也查看了 MiniTest 框架的文档,那里也没有定义,但我不确定。
您可以使用
assert "Yo".humanize
在 ruby 中,但 nil
和 false
是真实的。
更新:因为您想明确检查是否为零:
refute_nil "Yo".humanize
但在您描述的场景中,我实际上会检查 return 值是否符合我的预期。考虑:
class String
def humanize
false
end
end
refute_nil "Yo".humanize
assert_equal "Yo", "Yo".humanize
Here 你可以找到 MiniTest
.
定义的断言列表
如您所见,assert_not_nil
未定义。 MiniTest
没有定义很多可能的断言,但也确实可以用最简单的断言来定义任何断言 assert
.
在您的具体情况下:
assert result != nil
您还可以传递自定义消息
assert result != nil, "Expected something to not be nil"
assert_not_nil
只是 refute_nil
的别名,但它只是 Rails,不是标准 Minitest 的一部分。更改测试以扩展 ActiveSupport::TestCase 应该可以解决问题:
class StringExtensionTest < ActiveSupport::TestCase
def test_humanize_returns_nothing
assert_not_nil "Yo".humanize, "humanize is returning nil."
end
end
assert !!result
对我有用。 !!
表示“转换为布尔值”(字面意思是双重否定)。
我正在尝试执行以下代码,但它给我一个未定义的方法错误:
require 'minitest/autorun'
require 'string_extension'
class StringExtensionTest < Minitest::Test
def test_humanize_returns_nothing
assert_not_nil "Yo".humanize, "humanize is returning nil."
end
end
我正在尝试从 Codeschool 的 Rails 课程中执行这段代码,但似乎没有方法 assert_not_nil
。我也查看了 MiniTest 框架的文档,那里也没有定义,但我不确定。
您可以使用
assert "Yo".humanize
在 ruby 中,但 nil
和 false
是真实的。
更新:因为您想明确检查是否为零:
refute_nil "Yo".humanize
但在您描述的场景中,我实际上会检查 return 值是否符合我的预期。考虑:
class String
def humanize
false
end
end
refute_nil "Yo".humanize
assert_equal "Yo", "Yo".humanize
Here 你可以找到 MiniTest
.
如您所见,assert_not_nil
未定义。 MiniTest
没有定义很多可能的断言,但也确实可以用最简单的断言来定义任何断言 assert
.
在您的具体情况下:
assert result != nil
您还可以传递自定义消息
assert result != nil, "Expected something to not be nil"
assert_not_nil
只是 refute_nil
的别名,但它只是 Rails,不是标准 Minitest 的一部分。更改测试以扩展 ActiveSupport::TestCase 应该可以解决问题:
class StringExtensionTest < ActiveSupport::TestCase
def test_humanize_returns_nothing
assert_not_nil "Yo".humanize, "humanize is returning nil."
end
end
assert !!result
对我有用。 !!
表示“转换为布尔值”(字面意思是双重否定)。