2009-09-18 55 views
0

我有一个用C++编写的库,我想通过interop从C#进行端到端测试。基本上这个库需要一些参数并在另一端吐出一个文件。我想将请求传递给com互操作,然后声明所有数据都正确写入文件。在托管代码中集成测试NUnit的C++代码

可以做到这一点吗?有更容易的方法吗?使用pinvoke什么的?

谢谢

回答

1

我会使用C++/CLI将.net测试和本机C++代码粘合在一起。

它运作良好,足以在实践中:我在几个月前也有类似的问题 - 想验证我写一个C++协议库将与现有的Java实现互操作。为此,我使用C++/CLI的精简C++代码,将Java构建为J#,并使用C#编写测试。

+0

所以当你说使用C++将它们粘合在一起时,你的意思是创建一个C++类来调用被测试的系统并用于执行必要的断言? 你能详细解释一下你是如何实现它的吗? – 2009-09-19 00:41:29

+0

C++/CLI层是一个带有静态方法的类,它简单地将调用委托给本地API(并且做了任何必要的事情,如将传入的CLR类型转换为本地 - 主要是System :: Byte [] ^到char [])。 C#单元测试随后称为C++/CLI类与J#类不兼容。 – 2009-09-19 08:47:52