【发布时间】:2010-04-29 11:59:33
【问题描述】:
我有一堆用 CPPunit 编写的模块测试,其中一些是手工创建的模拟。我正在寻找一种尽可能顺利地将它们迁移到 GoogleTest 的方法。 你试过这样的操作吗? 需要付出什么努力?
【问题讨论】:
标签: c++ unit-testing testing cppunit googletest
我有一堆用 CPPunit 编写的模块测试,其中一些是手工创建的模拟。我正在寻找一种尽可能顺利地将它们迁移到 GoogleTest 的方法。 你试过这样的操作吗? 需要付出什么努力?
【问题讨论】:
标签: c++ unit-testing testing cppunit googletest
Google Test 和 Cppunit 似乎在调用测试时共享相同的语法,但我怀疑该语法有太多差异。
我几乎可以肯定你不能以某种方式自动化它,并且这个操作需要重新考虑和重新组合你的测试以遵循 Google Test 语义(如果你使用专门的东西来创建你的模拟,然后将它们移植到 @987654324 @ 需要更多的努力,因为Google Mock 的方法不是显而易见的,实际上很复杂)。
我会说你最好重新考虑以下问题:“我为什么需要移植我的测试”、“这个操作有什么好处”和“我真的想研究一个全新的测试框架吗?然后出于某种目的重写我所有的测试”。
【讨论】:
您似乎可以从另一个框架(cppunit,在您的情况下)使用谷歌测试: https://code.google.com/p/googletest/wiki/AdvancedGuide#Letting_Another_Testing_Framework_Drive
【讨论】:
在某种程度上我同意@Kotti。自动转换对于测试来说并非易事,因此您需要考虑现有测试的数量是否值得付出努力。
我是 Googlemock 框架的忠实拥护者,如果您在手动模拟方面进行了大量投资,那么将您的模拟移植到 Googlemock 可以大大降低您的持续测试成本。
如果这是考虑移植的原因,那么请记住 Googlemock 可以与其他测试框架一起使用——而不仅仅是 Googletest。 (注:我没有使用过这个功能,但是看过网上的报道它的使用)
【讨论】: