Mar*_*scu 1 c# tdd unit-testing
我的ExcelReaderC#应用程序中有一个类 - 我需要将Excel电子表格导入数据库表.我的问题是,这是为数不多的未经测试的类之一 - 我不能使用"模拟输入",并且使用实际的Excel电子表格进行测试会使测试有点慢(大约一秒钟).我知道班级工作正常 - 我手动测试了 - 但我有点不安,没有自己的测试就离开它.
所以 - 我的问题是:哪一个更好:没有单元测试,慢单元测试,或者第三种方法我无法弄清楚?
[编辑]很多很棒的答案,我真的很抱歉,我只能标记一个.
你可以包装ExcelReader和模拟包装器.一个简单的例子是:
+--------------+
| {interface} |
| IExcelReader |
+--------------+
^
|
|
+-------------+ 1 1 +--------------------+
| ExcelReader |-----------| ExcelReaderWrapper |
| | | |
+-------------+ +--------------------+
Run Code Online (Sandbox Code Playgroud)
这样,任何需要实际的类ExcelReader都可以引用,IExcelReader而是通过它ExcelReaderWrapper或模拟注入它.它可能会创建很多类,但收益在于可以替换ExcelReader并且不会被迫编写慢速集成测试.