如何围绕C代码对托管包装器进行单元测试?

Bri*_*128 5 c unit-testing managed-c++ dependency-injection visual-studio-2010

我将围绕一些C函数创建一个Managed-C++包装器,以允许它在其他.NET解决方案中使用.我正在寻找一个非常简约的包装,如:

C头中的签名:

void DOSTH(const char*, short, long*);
Run Code Online (Sandbox Code Playgroud)

暴露的托管界面:

public void doSomething(String^ input, short param, [Out] long^ %result);
Run Code Online (Sandbox Code Playgroud)

为此,我的解决方案将具有C头,并将引用包含我正在构建的已编译C API的.dll.

作为Visual Studio的新手,我不确定如何对其进行单元测试.是否可以模拟.dll来提供模拟实现?是否有一个图书馆可以让这种任务变得简单?是否有一个特定的解决方案结构,我应该旨在使这更容易?

在这方面的任何指导都会很棒.谷歌的搜索让我想要了解有关单独测试托管包装的更多信息.

Seb*_*ber 0

您是否只需要能够存根/模拟您的包装器,以便您的测试不依赖于本机 dll?

然后,您可以为包装器声明一个抽象基类,编写一个调用本机 dll 的实现,并编写另一个用于返回预设值的测试目的的实现。或者您可以使用MoqRhino.Mocks等框架来模拟您的包装器。