如果你曾经使用过Pex,你认为它作为一种工具的优缺点是什么?
此外,您认为“自动探索测试”作为TDD/单元测试的补充,一般而言有哪些优缺点?
如果你曾经使用过Pex,你认为它作为一种工具的优缺点是什么?
此外,您认为“自动探索测试”作为TDD/单元测试的补充,一般而言有哪些优缺点?
Pex让你编写带有参数化的单元测试。从这个意义上说,它完全适合TDD/单元测试流程:编写测试,让Pex“探索”它,找到一些失败的测试,修复代码等。
最大的优势是你可以表达你对于“输入类”而不仅是一些硬编码的值的测试。这给了你更多写测试的表达性,并迫使你考虑你的代码应该满足的不变量/期望(即更难编写断言)。
我觉得作为一款探索性测试工具,Pex实在很有吸引力。在这方面,我认为它是我想要移交给QA使用的东西。
作为TDD工具,它还需要改进,因为TDD是一项设计活动。然而,我喜欢Peli所指向的方向。自动辅助设计有其可取之处。例如,尽管TDD是一种设计工具,但我没理由不能在设计时让自动化工具指出潜在的边缘情况,对吧?从一开始就建立质量。
点开这篇文章,Peli在其中展示了如何以TDD风格的工作流程使用Pex。 http://blog.dotnetwiki.org/TDDingABinaryHeapWithPexPart1.aspx
测试驱动开发使您为可测试性构建代码结构。在这方面,Pex通过您的代码找到了聪明和笨拙的路径,并帮助您超越了简单的覆盖度指标。
Pex与Moles的主要优势是在进行现有项目开发时能够跟踪副作用:运行Pex一次并保存输出,然后应用代码更改并再次运行Pex以查看哪些内容出了问题。