我有一个问题,了解assert_predicateMiniTest 的用处.它与assert_equal?何时想要使用这个断言有什么不同?我已经多次遇到它,但并没有真正得到它的确切含义.
Chr*_*tom 10
assert_equal 检查预期值和实际值是否相等:
assert_equal "Bender", robot.name
Run Code Online (Sandbox Code Playgroud)
assert_predicate 在目标对象上调用named方法,如果结果是真实的则传递:
assert_predicate robot, :bender?
Run Code Online (Sandbox Code Playgroud)
您可以轻松地将此测试编写为:
assert robot.bender?
Run Code Online (Sandbox Code Playgroud)
但是assert_predicate在某些情况下可以更具表现力,并且在检查多个谓词条件时可以更好一些:
roles = %i(admin? publisher? operator?)
roles.each {|role| assert_predicate user, role }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1285 次 |
| 最近记录: |