我有这样的测试。负单位测试。
这个测试有意义吗?仅测试预期的特殊情况不是更好吗?
[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);
}
答案 0 :(得分:4)
对我来说,这个测试是有道理的。您正在检查SUT(测试对象)是否返回空数组,如果它没有找到任何与输入参数匹配的记录。
答案 1 :(得分:1)
在我看来,单元测试用于检查方法的正确性。正确处理错误输入也是您要测试的内容。
单元测试旨在让您对代码有一种安全感,因此处理无效输入肯定是我要测试的。
答案 2 :(得分:0)
尝试失败测试的一个好理由是任何单元测试都优于无单元测试
编写失败测试可以让您更好地了解系统应该失败的内容,否则您还有其他一些您不知道的情况