当前位置 : 主页 > 编程语言 > ruby >

ruby – 在MiniTest中assert_predicate有什么用?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我在了解assert_predicate在MiniTest中的用处时遇到了问题.它与assert_equal的不同之处是什么?什么时候想要使用这个断言?我已经多次遇到它,但并没有真正得到它的确切含义. assert_equal检查预
我在了解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 }
网友评论