2012-03-09 60 views
0

是否有意义将不存在的唯一ID传递给我的GetXX方法以期望创建的列表没有任何计数?我的意思是,当我测试一个现有的Id时,创建的List与它所保存的项目数量无关。如果我传递一个不存在的ID,为什么应该列表null或没有count == 0?我不确定这个测试的意义。它是否有意义单元测试不存在Id

[Test] 
public void Get_Teststeps_By_UnitId_Not_Existing() 
{ 
    // ARRANGE 
    ITeststepDataProvider provider = new TeststepDataProvider(_connectionString); 
    int unitId = 100; 

    // ACT 
    List<Teststep> units = provider.GetTeststepsByUnitId(unitId); 

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

回答

0

这将非常依赖于被测系统,它应该做什么以及如何定义。例如,如果您定义您正在测试的方法不应该返回空值,而是某些给定输入的空集合(例如,不存在的ID - 不管那意味着什么),那么测试这种情况和正确的方法。

+0

确实很有道理:)它就像你说的那样。 – Pascal 2012-03-09 21:46:09

1

我认为负面测试是一个有效的执行。它是否应该有一个计数为0而不是为空我想是由应用程序试图完成的。但是,通常情况下,您想要测试的是与正面的情况一样多的负面情况。

1

单元测试不是验证GetXX方法,因为它现在是(虽然它从未伤害测试方法做什么你认为它即使是简单的),它也使任何人都改变/稍后重构代码以防意外更改导致其他代码中断的内容。如果你依赖某种行为,那么无论多么简单,你都应该确保对它进行测试。

换句话说,不要只是跳过一个测试,因为它现在没有意义,考虑以后的维护,并且测试实际上为方法的用户提供了良好的文档,以说明该方法如何被假设为要使用和/或不使用。

1

如果您的代码调用总是期望GetXX()返回List的实例,那么您应该对其进行测试。这将确保有人不能更改GetXX()代码并使其返回null,然后在您的系统中导致NullReferenceException

相关问题