【问题标题】:Testing File Creation Wrapper C#.Net - Thoughts测试文件创建包装器 C#.Net - 思考
【发布时间】:2010-07-28 10:15:06
【问题描述】:

这可能是一个菜鸟问题,我会被安排回答,但这里是……抱歉,长度尽量短。

背景

我正在整理我在新角色中继承的代码库。因此,我在处理部分/错误/新功能时引入了测试。这些功能之一是发票打印功能,发票是从水晶报告 rpt 文件生成的。已经有一个用于底层 Crystal 函数的小包装器,我只是想对其进行测试并确保我们根据需要生成文件。

问题 首先,我知道任何使用文件 IO 的东西都不应该是单元测试的一部分,但我可以用集成测试/系统测试来涵盖这一点吗?我是否只是使用预加载的数据运行包装器并检查它是否会吐出一个文件?我可以以编程方式查询 PDF 并确保详细信息正确吗?

我还尝试模拟一些 IO,以便我可以对包装器进行单元测试,但在这里我遇到了 moq 不喜欢水晶 ReportDocument 类的问题。此外,我必须真正改变 Class 的结构以允许测试,我是否真的应该这样做(有点我应该这样做的感觉)但是公开私人信息以便我可以插入测试数据似乎有点错误。

我没有发布代码,因为目前这更像是一场理论上的辩论......我很想获得一些代码覆盖率,但不确定我是否过度思考,有人可以就这些类型的问题给我建议情况。

非常感谢。

【问题讨论】:

    标签: c# automated-tests integration-testing


    【解决方案1】:

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

    【讨论】:

    • 感谢格泽尼奥。听起来我开始看它的方式有点偏向于覆盖,测试包装器真的不会给我任何东西。您有任何关于比较二进制信息以进行更高级别测试的信息吗?不用担心 Crystal 方面,但我喜欢针对已知良好 pdf 进行测试的声音。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2012-11-26
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多