我在了解assert_predicate在MiniTest中的用处时遇到了问题.它与assert_equal的不同之处是什么?什么时候想要使用这个断言?我已经多次遇到它,但并没有真正得到它的确切含义. assert_equal检查预
assert_equal "Bender", robot.name
assert_predicate在目标对象上调用named方法,如果结果是真实的则传递:
assert_predicate robot, :bender?
您可以轻松地将此测试编写为:
assert robot.bender?
但是assert_predicate在某些情况下可能更具表现力,并且在检查多个谓词条件时可能会更好一些:
roles = %i(admin? publisher? operator?) roles.each {|role| assert_predicate user, role }