关于这个特定的问题,我在教程中没有找到太多。
所以我有一个叫做'Job‘的类,它有公共的ctor和一个公共的Run()函数。类中的所有内容都是私有的,并封装在类中。(你可能还记得这个Testing only the public method on a mid sized class?上的一个老帖子,它的回复对我帮助很大)
Run()方法做了一大堆事情-接受一个excel文件作为输入,从中提取数据,向第三方数据供应商发送请求,获取结果并将其放入数据库中,并记录作业的开始/结束。
这个作业类在它的run方法中使用了3个独立的接口/类(IConnection将连接到第三方供应商并发送请求,IParser将解析结果,IDataAccess将结果保存到数据库)。因此,现在,Run()方法中唯一的真正逻辑是提取excel输入并将其发送到其他类的链中。我创建了3个模拟类,并在Job类ctor上使用了DI,一切都很好…
除了-我仍然有点迷惑如何测试我的Run()方法-因为它是void的,不返回任何东西……
在这种情况下,我是否应该向Run()方法添加一个返回值,以返回从Excel文件中提取了多少条记录?因为现在这是该函数中唯一完成的逻辑..这不会在真正的代码中处理,但会在单元测试中处理。这对我来说似乎有点难闻--但就真正的TDD而言,我是一个新手……
第二个问题--我是否应该创建一个名为IExcelExtractor的第四个类,它为我完成了这个逻辑?还是说这有点类爆炸??
即使我执行了后者,如果Run()函数返回void,并且它的所有工作都是由实际上什么也不做的模拟对象执行的,我如何测试它呢?我可以理解如果我的函数有一个有意义的返回值...但在这种情况下,我很困惑。
如果你读到这一步,非常感谢你通读这篇文章。
https://stackoverflow.com/questions/1607339
复制相似问题