【发布时间】:2013-09-30 10:43:09
【问题描述】:
我想为我的一些课程编写单元测试。我的一些类依赖于使用文件系统并且没有接口可模拟的第三方库。
我会模拟该类以避免它对文件系统的依赖,因为我的代码实际上只关心该代码的结果。
在不修改初始库的情况下模拟库的具体类的最佳策略是什么?
我想我可能会创建一个实现接口并包含初始库对象的包装器对象。但是,在我开始这条路之前,我想确保没有更好的方法。
或者,在这种情况下,像 TypeMock 这样的工具会比 Moq 更适合吗?
【问题讨论】:
-
不确定我是否完全理解 - 如果你想测试库是否正常工作,你为什么要模拟它?
-
抱歉,措辞不好——写得太快了。我将编辑:现在在移动设备上。本质上,我的意思是我想在我的代码测试中使用该库,但它使用文件系统。我想模拟它以使我的测试更快/更健壮。
-
好的,明白了。所以库依赖于文件系统,你想用“模拟”文件系统替换它。一个很好的问题。
-
谢谢!我希望主题是有价值的,即使最初的措辞不是。 :)
-
您知道该库是否使访问文件系统的方法可见(即
public或protected)和virtual?或者它是否与整个地方的文件系统混为一谈。
标签: c# unit-testing interface integration-testing moq