最近,在阅读有关基于属性的测试的想法时,我非常兴奋。
但我有一个问题,我仍无法在任何地方找到答案:
基于属性的测试如何确保每次测试极端情况?
更具体地说,我可以使用ScalaCheck来测试我的除法功能:
def divide(a: Int, b: Int): Int
由于测试用例将随机生成,我如何确定ScalaCheck每次都会检查b = 0
的情况?
答案 0 :(得分:1)
特殊情况通常是他们自己的属性。如果您尝试编写一个涵盖passenger_app_env
的单个案例,那么您的所有属性将最终进行一次大而复杂的测试。但您可以将参数空间拆分为多个块,例如:
并单独检查。
答案 1 :(得分:1)
一些PBT工具总会在生成随机数之前注入极端情况。
例如,jqwik(对于Java)在任何随机值之前会尝试0,1,-1,Integer.MIN ... VALUE和Integer.MAX ... VALUE。