假设有很多托管模块调用非托管模块。测试框架测试托管模块。我想测试lib中的独立C++模块,但是使它作为当前测试框架的一部分运行。目前,我正在考虑使用C++单元测试框架,并使用pinvoke从c#测试框架调用单元测试主要方法。 C++会将其结果输出到控制台,并最终将成功或失败返回给托管测试框架。有什么建议么?什么是最好的方式来编写单元测试从C#的C + +库?
1
A
回答
2
我会试着写一个C++/CLI shim,这样你就可以直接从当前的.NET测试框架调用你的单元测试,而不是把第二个图像带入图片并尝试混合和匹配结果。
0
我同意Timo的建议,你最好只使用一个测试框架。但是,与其说是一个C++/CLI shim,它需要引入一些新技术并且可能引发困难的编组问题,我的选择将是通过p/Invoke直接调用测试。所以,我会写的两种方法在C++中使用任何垫片代码(或两者):
如果可能的话,写的所有测试逻辑在C#中,使垫片功能只需轻轻包裹你的现有C++逻辑,而C#代码就像C++代码一样调用它们。 (如果将C++函数放入一个可以被主应用程序和测试同样使用的DLL中,这样做尤其容易,但如果您的界面严格按类进行编程而不是处于
WINAPI
风格,那么这可能没有意义。然而,有时候编写WINAPI
垫片有时很容易,它们包装了一个类接口,通过this
作为LPVOID
。)无论如何,关键是尽可能少写新的C++。对于大部分测试逻辑只适用于C++编写的代码,每个测试执行一个测试步骤并返回一个结果(例如,返回true/false并填充错误字符串,或者可能引发异常)。
相关问题
- 1. 什么是最好的方式来包装第三方类c#
- 2. 什么是最好的方式来帮助你的测试仪?
- 3. 编写单元测试时最常犯的错误是什么?
- 4. 什么是数据库单元测试的好方法
- 5. 什么是单元测试模板化C++方法/类/函数的好方法?
- 6. Rails5 - 编写服务单元测试的最佳方法是什么?
- 7. 为iPhone/iPad编写单元测试的最佳方法是什么?
- 8. 在node.js中编写单元测试的最佳方法是什么?
- 9. 在C中测试空值的最简单方法是什么?
- 10. 什么是用C++编写的好的UV映射库?
- 11. 什么是C#最好的拼写检查库?
- 12. 单元测试异步方法的最佳方法是什么?
- 13. 用C#编写批处理脚本的好方法是什么?
- 14. 什么是从多个线程进行单元测试的最佳方式?
- 15. C++模拟ContainsKey(TKey)来自C# - 最好的实践是什么?
- 16. 什么是单元测试NSDateFormatter的好方法?
- 17. 什么是从我的C#程序打印最好的方法?
- 18. eclipse C++单元测试快捷方式
- 19. 什么是最好的表单元素样式库/插件(jQuery)?
- 20. 为RESTLET Web服务编写测试用例的最佳方式是什么?
- 21. 单元测试的最佳方式DbProviderFactory
- 22. 什么是最好的方式来使用C#与MySQL不使用odbc
- 23. 单元测试最简单的方法Python的C代码
- 24. 编写将Request.Form数据发送到我的控制器的单元测试最简单的方法是什么?
- 25. 针对EJB编写JUnit测试的“正确”方式是什么?
- 26. c#最好的方式来匹配yahtzee
- 27. 使用新的测试库设置飞镖单元测试的最佳方式是什么?
- 28. 什么是测试的最pythonic方式,输入是格式良好的数字
- 29. 在解决方案中构建单元测试的最佳方式是什么?
- 30. 从Java编写excel文件的最佳方式是什么?