我正在学习 FP,并了解了基于属性的测试的概念,对于来自 OOP 世界的人来说,PBT 看起来既有用又危险。它确实检查了很多选项,但是如果有一个(或一些)选项失败了,但在您的第一个假设 Jenkins 构建期间它们没有失败,该怎么办。那么下次运行构建时,测试可能会失败,也可能不会失败,这是否会扼杀可重复构建的整个想法?
我看到有些人explored options to make the tests deterministic,但是如果这样的测试没有捕捉到错误,它就永远不会捕捉到它。
那么这里有什么更好的方法呢?我们是牺牲构建的可重复性来最终发现错误,还是冒着从未发现错误的风险,但又恢复了可重复性?
(我希望我正确理解了 PBT 的概念,但如果我没有理解,如果有人能指出我的误解,我将不胜感激)