测试通用类

时间:2010-06-12 23:28:11

标签: c# unit-testing generics nunit

这不仅仅是一个问题,而是试图比较笔记 和其他人。我写了一个模仿的通用History类 浏览器历史记录的功能。我想包裹我的 在编写单元测试时,要走多远。我是 使用NUnit。请在下面分享您的测试方法。

历史课程的完整代码是herehttp://pastebin.com/ZGKK2V84)。

3 个答案:

答案 0 :(得分:8)

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

  • 测试公共API中的每个方法和属性,验证每个方法和属性在添加“真实”数据时是否适当更改内部集合
  • 测试向每个方法添加无效数据(例如,这应该接受空引用吗?),确保您获得适当的例外或您想要的行为
  • 鉴于它是一个泛型类,我会用值类型和引用类型来测试它(除非你决定向一个或另一个添加约束)

答案 1 :(得分:3)

与你眼中的非泛型类相比,它作为泛型类的具体内容与测试有什么不同?我没有看到问题:)

只需在单元测试中填写T作为某种类型,例如int,这样你就拥有History<int>的实例,然后测试该类的所有有趣逻辑正常。例如。没有历史记录时不能倒退,前进意味着你可以倒退等等。通常的东西:)如果你不确定该怎么做,可以拿一本书或阅读一些单元测试教程。

答案 2 :(得分:1)

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