【发布时间】:2010-07-28 10:15:06
【问题描述】:
这可能是一个菜鸟问题,我会被安排回答,但这里是……抱歉,长度尽量短。
背景
我正在整理我在新角色中继承的代码库。因此,我在处理部分/错误/新功能时引入了测试。这些功能之一是发票打印功能,发票是从水晶报告 rpt 文件生成的。已经有一个用于底层 Crystal 函数的小包装器,我只是想对其进行测试并确保我们根据需要生成文件。
问题 首先,我知道任何使用文件 IO 的东西都不应该是单元测试的一部分,但我可以用集成测试/系统测试来涵盖这一点吗?我是否只是使用预加载的数据运行包装器并检查它是否会吐出一个文件?我可以以编程方式查询 PDF 并确保详细信息正确吗?
我还尝试模拟一些 IO,以便我可以对包装器进行单元测试,但在这里我遇到了 moq 不喜欢水晶 ReportDocument 类的问题。此外,我必须真正改变 Class 的结构以允许测试,我是否真的应该这样做(有点我应该这样做的感觉)但是公开私人信息以便我可以插入测试数据似乎有点错误。
我没有发布代码,因为目前这更像是一场理论上的辩论......我很想获得一些代码覆盖率,但不确定我是否过度思考,有人可以就这些类型的问题给我建议情况。
非常感谢。
【问题讨论】:
标签: c# automated-tests integration-testing