【发布时间】:2011-02-11 21:03:40
【问题描述】:
是的,可以为“Sum”或“Divide”等函数生成边界值测试。 Pex 是一个很好的工具。
但更多时候,我们会针对业务行为进行测试。让我们考虑一下经典 Beck 的 tdd 书中的例子:
[Test]
public void ShouldRoundOnCreation()
{
Money money = new Money(20.678);
Assert.AreEqual(20.68,money.Amount);
Assert.AreEqual(2068,money.Cents);
}
可以生成这个测试吗?否 :) 我的项目中 95% 的测试检查业务逻辑,并且无法生成。
Pex(尤其是与 Moles 搭配使用)可以提供 100% 的代码覆盖率,但测试套件的高代码覆盖率并不表示代码经过良好测试 - 它只会让人错误地相信所有内容都经过测试。这是非常危险的。
所以,问题是 - Pex 真的有用吗?
【问题讨论】:
标签: .net unit-testing code-generation pex