如何对转换库进行单元测试?

3

我刚开始学习C#中的单元测试。

我已经阅读了很长时间有关单元测试的文章,并且已经尝试使用NUnit进行实验,但这是我第一次真正尝试为真实代码编写真正的测试。

但我的问题是:
我很难想出可以实际测试的内容。

我想要测试的项目是一个转换库(将POCO列表转换为ADO记录集)。

到目前为止,我只想到了两个要测试的内容:

  • 记录集是否存在(不为空或null)
  • 每个字段的内容是否相同(--> 如果RS!Foo == POCO.Foo

那么,我的问题是:

  • 当我的代码只是将A转换为B时,还可以测试什么?
  • 或者说这个项目太小/太简单/不是写更多有意义的单元测试的好例子吗?
3个回答

3

需要测试的内容有很多。我建议考虑并可能验证以下内容:

  • POCO的私有字段是否正确映射
  • 列表中的无效条目是否正确抛出异常
  • 记录集长度是否正确
  • POCO中的继承是否按预期处理(例如:基类成员是否按预期映射)

1

添加一个转换测试用例,其中您知道确切的输入和输出。然后测试代码是否完全生成该答案。


@JimMischel -- 实际上,一个非常好的测试用例确实是一个非常好的单元测试。但我认为你的意思是一个测试用例并不能构成一个很好的测试套件。同意这一点。但这只是建议他测试代码的一种方式,还可以作为回归测试,以防他将来进行更改。 - Matt Fenwick

0

试试来自Microsoft的Pex工具。它可以在分析您的代码后生成单元测试。只需快速安装Visual Studio插件即可。然后右键单击您想要测试的类/方法,在上下文菜单中使用Pex为您生成所有可能的代码路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接