我为我的C++代码使用Boost Test框架,但它有两个问题,可能是所有C++测试框架都常见的:
有没有人知道更好的测试框架,还是我永远不会嫉妒Java/.NET开发人员可用的测试工具?
phi*_*red 66
我刚推出了自己的框架,CATCH.它仍在开发中,但我相信它已经超过了大多数其他框架.不同的人有不同的标准,但我试图覆盖大部分地方而没有太多的权衡.看看我的链接博客条目,了解品尝者.我的五大特色是:
它没有生成存根 - 但这是一个相当专业的领域.我认为Isolator ++是第一个真正实现这一目标的工具.请注意,Mocking/stubbing框架通常独立于单元测试框架.CATCH特别适用于模拟对象,因为测试状态不会被上下文传递.
它还具有Objective-C绑定.
[更新]
几年前刚回到我的这个答案.感谢所有好评!显然,Catch在那个时代已经发展了很多.它现在支持BDD样式测试(给定/当/时),标签,现在在单个标题中,以及内部改进和改进的负载(例如更丰富的命令行,清晰和富有表现力的输出等).这是一篇更新的博客文章.
J M*_*ler 23
看看Google C++测试框架.
它被谷歌用于他们所有的内部C++项目,因此它必须非常好.
http://googletesting.blogspot.com/2008/07/announcing-new-google-c-testing.html
http://code.google.com/p/googletest
Bri*_*art 20
我只回答了一个非常相似的问题.我最终使用了Noel Llopis的UnitTest ++.我比boost :: test更喜欢它,因为它没有坚持用宏来实现测试工具的主程序 - 它可以插入你创建的任何可执行文件.它确实遭受了与boost :: test相同的阻碍,因为它需要链接一个库.我使用过CxxTest,它确实比C++中的任何其他内容更接近 - 自动生成测试(虽然它需要Perl)成为你的构建系统的一部分来做到这一点).C++只是不提供.NET语言和Java所做的反射挂钩.Visual Studio Team System中的MsTest工具 - Developer's Edition将自动生成非托管C++的测试存根,但这些方法必须从DLL导出才能执行此操作,因此它不适用于静态库.其他测试框架.NET世界也可能有这种能力,但我不熟悉其中任何一种.所以现在我们将UnitTest ++用于非托管C++,而我目前正在为托管库决定MsTest和NUnit.
| 归档时间: |
|
| 查看次数: |
51086 次 |
| 最近记录: |