B S*_*ven 5 ruby unit-testing ruby-on-rails assertions ruby-on-rails-3
显然assert_false,Test :: Unit中没有.如何通过扩展断言和添加文件来添加它config/initializers/assertions_helper.rb?
这是最好的方法吗?我不想修改test/unit/assertions.rb.
顺便说一句,我不认为这是多余的.我在用assert_equal false, something_to_evaluate.这种方法的问题在于它很容易被意外使用assert false, something_to_evaluate.这将始终失败,不会抛出错误或警告,并邀请错误进入测试.
我个人觉得这个名字assert_false比refute因为它与所有其他断言一致,而且它通常也更符合语义(类似于使用if !condition而不是unless)。
如果您有同样的感觉并且想要assert_false,请将其添加到test/test_helper.rb:
class ActiveSupport::TestCase
...
def assert_false(test, message="Expected: false. Actual: #{test}.")
assert_equal false, test, message
end
end
Run Code Online (Sandbox Code Playgroud)
编辑:请注意assert !test(在其他地方建议)如果test为 nil(!nil 为真,我们可能想要assert_false(nil)失败)将不起作用。所以这是与 的直接比较false。