这种负面单元测试是否有意义

时间:2012-07-18 06:13:31

标签: c# unit-testing

我有这样的测试。负单位测试。

这个测试有意义吗?仅测试预期的特殊情况不是更好吗?

[Test]
public void Get_Root_Units_By_Non_Existing_TemplateId()
{
// ARRANGE
ITemplateUnitDataProvider provider = new TemplateUnitDataProvider(_connectionString);
int templateId = -1;

// ACT
var units = provider.GetRootUnits(templateId);

// ASSERT
Assert.IsNotNull(units);
Assert.Count(0, units);           
} 

3 个答案:

答案 0 :(得分:4)

对我来说,这个测试是有道理的。您正在检查SUT(测试对象)是否返回空数组,如果它没有找到任何与输入参数匹配的记录。

答案 1 :(得分:1)

在我看来,单元测试用于检查方法的正确性。正确处理错误输入也是您要测试的内容。

单元测试旨在让您对代码有一种安全感,因此处理无效输入肯定是我要测试的。

答案 2 :(得分:0)

尝试失败测试的一个好理由是任何单元测试都优于无单元测试

编写失败测试可以让您更好地了解系统应该失败的内容,否则您还有其他一些您不知道的情况

相关问题