我在理解 MiniTest 中 assert_predicate 的用处时遇到了问题。它与 assert_equal? 有何不同?何时需要使用此断言?我遇到过很多次,但并没有真正理解它的确切含义。

最佳答案

assert_equal 检查预期值和实际值是否相等:

assert_equal "Bender", robot.name
assert_predicate 调用目标对象上的命名方法,如果结果为真则通过:
assert_predicate robot, :bender?

您可以像编写此测试一样轻松:
assert robot.bender?

但是 assert_predicate 在某些情况下可能更具表现力,并且在检查多个谓词条件时可能会更好一些:
roles = %i(admin? publisher? operator?)
roles.each {|role| assert_predicate user, role }

关于ruby - MiniTest中assert_predicate有什么用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32964494/

10-13 02:17