代码之家  ›  专栏  ›  技术社区  ›  λ Jonas Gorauskas

测试泛型类

  •  3
  • λ Jonas Gorauskas  · 技术社区  · 14 年前

    从本质上说,这不仅仅是一个问题,而是一种比较笔记的尝试。 和其他人在一起。我写了一个通用的历史类来模拟 浏览器历史记录的功能。我想把我的 在为它编写单元测试时,要考虑到要走多远。我是 使用NUnt。请在下面分享您的测试方法。

    历史课的完整代码是 here ( http://pastebin.com/ZGKK2V84 )

    3 回复  |  直到 14 年前
        1
  •  8
  •   Reed Copsey    14 年前

    虽然这个问题有点模糊,但一般来说,对于这样的类,我建议至少测试以下内容:

    • 测试公共API中的每个方法和属性,在添加“真实”数据时验证每个方法和属性是否适当地更改了内部集合。
    • 测试向每个方法添加无效数据(例如,这是否应接受空引用?),确保您得到适当的异常或您想要的行为
    • 假设它是一个泛型类,我将用值类型和引用类型来测试它(除非您决定向其中一个或另一个添加约束)。
        2
  •  3
  •   Mark Simpson    14 年前

    与您眼中的非泛型类相比,作为一个泛型类对测试有什么特别的影响?我没看到问题。)

    填满 T 在单元测试中作为某种类型,例如 int 所以你有一个 History<int> ,然后像正常一样测试类中所有有趣的逻辑。例如,没有历史就不能倒退,前进意味着你可以倒退等等。通常的事情是:)如果你不确定该怎么做,那就买本书或者读一些单元测试教程。

        3
  •  1
  •   munificent    14 年前

    编写一个反映泛型类的泛型测试类。然后创建另一个测试类,用几个不同的类型参数(值类型和某种类型的引用类型是一个好的开始)来实例化该测试类。