我有一個問題,理解MiniTest中assert_predicate
的用處。它與assert_equal?
有什麼不同?什麼時候會想要使用這個斷言?我遇到過很多次,但沒有真正明確的意思。MiniTest中assert_predicate的用法是什麼?
2
A
回答
8
assert_equal
檢查看到預期值和實際值是否相等:
assert_equal "Bender", robot.name
assert_predicate
調用你的目標對象上的命名方法,並將結果是否truthy:
assert_predicate robot, :bender?
你可以就像同樣容易地寫這個測試一樣:
assert robot.bender?
但assert_predicate
可以在某些情況下,多一點的表現力和檢查多個謂詞條件時,可以更好一點:
roles = %i(admin? publisher? operator?)
roles.each {|role| assert_predicate user, role }
2
的documentation for the method本身可以回答你的問題:
對於謂詞測試。例如:
assert_predicate str, :empty?
這真的意味着規格和是前結束的assert_operator:
str.must_be :empty?
這表明的原因是爲了支持.must_be
呼叫,而不是提供任何assert_equal
或assert
的特定收益。
相關問題
- 1. 使用minitest創建存根的正確方法是什麼?
- 2. 什麼是assert(minitest)等效的RSpec語法
- 3. 什麼時候使用MiniTest :: Unit :: TestCase與MiniTest :: Spec?
- 4. Minitest的assert_select的水豚等價物是什麼?
- 5. MiniTest中的方法期望
- 6. MiniTest的assert_in_delta和assert_in_epsilon方法有什麼區別?
- 7. 什麼是JIRA權限API中的deprecatedKey和什麼是用法
- 8. 這個MiniTest :: Unit :: TestCase警告是什麼意思?
- 9. 什麼是iOS中的performSelector的用法
- 10. Shindig:Shindig中的RpcToken的用法是什麼
- 11. callParent的用法是什麼
- 12. mysql_pconnect的用法是什麼
- 13. FactRetriever的用法是什麼?
- 14. Assert.Equals的用法是什麼?
- 15. 如何在Minitest中使用塊語法?
- 16. VB.NET中泛型的用法是什麼?
- 17. Python中「和不」的用法是什麼?
- 18. PHP中'isset'的用法是什麼?
- 19. Java中var-args的用法是什麼?
- 20. SQL Server中uniqueidentifier的用法是什麼?
- 21. eclipse中org.eclipse.jdt.launching.JRE_CONTAINER的用法是什麼?
- 22. C#中代表的用法是什麼?
- 23. CSS中星號的用法是什麼?
- 24. HTML 5中postMessage的用法是什麼?
- 25. django中forms.py的用法是什麼
- 26. pthread中PTHREAD_CREATE_JOINABLE的用法是什麼?
- 27. xcode 4.5中autoLayout的用法是什麼?
- 28. VBA Excel中@(At)的用法是什麼?
- 29. SVN中標記的用法是什麼?
- 30. org.apache.hadoop.mapred.Mapper中'key K1'的用法是什麼?
'assert_equal'會導致失敗時出現超級無用的消息,這些消息沿着「預期真實等於真實,但得到錯誤」。 –
唯一的用法是對斷言失敗的更好的消息。這是所有額外的'assert_ *'方法的唯一用處 - 否則真正你需要的只是單個'assert'方法。這是失敗的消息不是太有用。 – jrochkind