那些使用Pex的人,您认为Pex作为工具的优点和缺点是什么?
另外,作为 TDD /单元测试的补充,您认为"自动化探索性测试"的优缺点是什么?
Pex允许您编写参数化单元测试.从这个意义上说,它完全符合TDD /单元测试流程:编写测试,让Pex"探索"它,找到一些失败的测试,修复代码等等.
最大的优点是您可以表达对输入类别的测试,而不仅仅是几个硬编码值.这为编写测试提供了更多的表现力,并且还强制考虑代码应该满足的不变/期望(即编写断言更难).
我认为Pex作为一种探索性测试工具真的很耐人寻味.在这方面,我认为这是我想交给QA使用的东西.
作为TDD工具,它需要一些工作,因为TDD是一项设计活动.但是,我确实喜欢Peli的方向.自动化辅助设计有一些东西可以说.例如,仅仅因为TDD是一个设计工具,我没有理由在设计时没有自动化工具指出潜在的边缘情况,对吧?从一开始就建立质量.
看看Peli在TDD风格的工作流程中使用Pex的这篇文章.http://blog.dotnetwiki.org/TDDingABinaryHeapWithPexPart1.aspx
如果你寻找关于写作理论的文献(google David Saff) - 这是编写单元测试的一种更通用的方法,并且使用Pex作为理论探索者,我发现从我的经验到目前为止,我发现了生产力的一个步骤变化.我刚刚写了一篇博文,详细介绍了我在TDD中的Pex经历,在这里:http://taumuon-jabuka.blogspot.com/2009/01/theory-driven-development-using_11.html
正如我所说 - 我认为它是类固醇的TDD!它绝不会取代TDD,而是增强了活动.
我真的很关心Pex.它将为您永远不会想到的edege案例提供测试,特别是如果您的团队很小并且编写方法的人与编写测试的人相同.
它还将提供您的方法将遵守的合同义务.