6
假设有这样的(C#)的方法:Can Pex能自动发现类型上溢/下溢条件吗?
public static int Add(int x, int y)
{
return x + y;
}
如果总和不适合的int
数据类型,它可能是一个错误情况,这是值得一个单元测试。 Pex能够识别这些错误并为这些错误生成单元测试吗?
假设有这样的(C#)的方法:Can Pex能自动发现类型上溢/下溢条件吗?
public static int Add(int x, int y)
{
return x + y;
}
如果总和不适合的int
数据类型,它可能是一个错误情况,这是值得一个单元测试。 Pex能够识别这些错误并为这些错误生成单元测试吗?
是的,它非常好。在介绍Pex时,他们会经常使用Java库的二进制排序例程中发现的bug,在找到新的中点时,它会溢出非常大的数组。相关的一组错误是闰年错误,他们通常会使用来自Microsoft自己的产品之一的功能(Azure?),这些产品在野外显示了其中一种产品。
Pex捕获许多不同类别的错误,包括溢出,下溢,空引用,无效参数,甚至是您在应用程序中抛出的任何自定义异常。我强烈建议阅读一些入门指南,然后结合Pex和代码合同,从长远来看让您的生活更轻松。
它甚至可以在使用散列表时导致散列冲突。这很好。 – usr
@BryanAnderson,你能分享一个相关例子的链接吗?我试图从问题的方法运行Pex自动发现,但它没有检测到溢出/下溢条件。 –
看看http://channel9.msdn.com/Blogs/Peli/Getting-started-with-Pex-in-Visual-Studio-2008,它现在比较老,但仍然是一个很好的介绍。你也可能需要编译over/underflow检查来测试你的add方法,我相信它们在大多数构建中默认情况下都是关闭的。 –