2010-07-28 31 views
1

这可能是一个noob问题,我会得到预定的,但在这里去...对不起,尽量保持尽可能短的长度。测试文件创建包装C#.Net - 想法

背景

我正在整理,我在我的新角色继承了代码库。所以我在介绍部分/ Bugs/New Features时引入了测试。其中一个功能是发票打印功能,发票是从水晶报告rpt文件生成的。对于底层Crystal函数已经有了一个小包装,我只是想测试它,并确保我们根据需要生成文件。

问题 首先,我知道什么用文件IO不应该是单元测试的一部分,但我可以覆盖这与集成测试/系统测试?我只是运行预装数据的包装并检查它吐出一个文件吗?我可以以编程方式询问PDF并确保细节正确吗?

我也试图模拟出一些IO,以便我可以单元测试包装,但在这里我有问题不喜欢水晶ReportDocument类moq。此外,我必须真正改变类的结构以允许测试,如果我真的这样做(有点像我应该这样做),但公开私有,以便我可以插入测试数据似乎有点不对。

我还没有发布代码,因为这是更多的一分钟的理论争论......我很想得到一些代码覆盖,但不知道如果我在想着事情可以有人请告诉我这些类型的情况。

非常感谢。

回答

0

我不担心单元测试这个类,因为它本质上是一个集成类。实现应该相当简单(只需将方法连接到底层水晶报表对象等),所以我甚至不打算为这个单独的类进行专门的集成测试。但是,您应该通过接受/更高级别的集成测试来覆盖它。我不确定Crystal Reports是如何工作的,但理想情况下,您希望以二进制方式将PDF与已知的良好版本进行比较(只有在生成的文件总是相同的情况下,该方法才有效)。

+0

感谢Grzenio。听起来像我已经开始看到它的方式有点覆盖覆盖,测试包装真的不会给我任何东西。您是否有任何信息比较更高级别测试的二进制信息?不打扰水晶方面,但我喜欢测试的声音反对已知的好pdf。 – 2010-07-28 13:00:04