【发布时间】:2016-11-30 10:01:03
【问题描述】:
我正在尝试编写一个使用 Dll 导入的类的单元测试用例,如下所示
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string name, string windowName);
为了测试课程,我想使用 MOQ 模拟上述语句,但无法弄清楚如何为其设置模拟。
还想知道上述是否可以实现。如果不能,那么需要做什么才能使其可测试。
我知道要使这个类可测试,我们需要在这些语句上创建包装器,并且需要将它分离到一个单独的类中。
想知道是否有任何其他选择可以达到同样的效果。
【问题讨论】:
-
但必须使用 DLL 导入静态
-
当然可以,但是您可以简单地将对该静态方法的调用隐藏到对另一个方法的调用中。
-
是的..但是当我尝试为该包装类编写单元测试时,我会遇到同样的情况
-
我知道我们需要画一条线来表示可以编写单元测试用例的最高级别..
-
DllImport 是一个声明,而不是一个方法。等效项是程序集引用。无论如何,最好将所有 DllImport 声明放在一个类中。
标签: c# unit-testing moq dllimport extern