0

我的类中有一个简单的方法,可以将一个元素放入缓存中:

public void Put(TItem item)
{
  // Do something
}

现在我添加了另一种方法来一次放置多个元素:

public void Put(IEnumerable<TItem> items)
{
    foreach (var item in items)
    {
        Put(item);
    }
}

似乎为了避免重复,我应该只检查我是否多次调用 Put。但我只能间接地做到这一点,因为这不是依赖。在测试这些方法时有没有办法避免复制/粘贴?我可以做一个冒烟测试来检查 Put 的一些结果,但是它本身有很多单元测试,在这种情况下它们不会是完整的。有什么好办法摆脱困境吗?

4

1 回答 1

4

我会在各种条件下进行测试,但只对Put本身的结果进行最少的验证 - 我假设有一些相当简单的方法可以检查一个项目是否已被放置?

可能的测试:

  • 空参数
  • 空集合
  • 一个条目的集合(理智)
  • 包含两个条目的集合(理智)
  • 具有重复条目 (x, y, x) 的集合
  • 如果可行的话,提前进入会导致异常的集合

foreach现在诚然,对于一个简单的循环来说,这可能被视为矫枉过正。我喜欢“测试直到恐惧变成无聊”的口头禅。

于 2013-04-08T07:53:17.250 回答