你能比较C ++的流行单元测试框架和Qt的QTest吗?
(cppunit,加强测试,谷歌测试等...)
缺点有哪些优点? 谢谢。
注意:GUI测试对我们来说不是很重要。
答案 0 :(得分:5)
QTest是我所知道的用于单元测试UI组件的唯一框架。我们已经成功使用它,但坚持使用Boost.Test进行常规单元测试。
答案 1 :(得分:3)
根据我的经验,我不推荐Qt测试框架。可以提到的两个可能的优点是:
主要缺点:
std::chrono::duration
是不可能的,尽管它们具有相同的可比性。仅针对QCOMPARE
Boost简单易用,适用于大多数情况,没有惊喜。
Google测试框架的主要优点是模拟支持。但是,此功能也可用于其他框架。它有很多很棒的功能,比如定义预期的调用序列,自定义匹配器,断言可以是人类可读的。但是熟悉这些功能需要时间(假设你需要它们)。
我想再提一个框架:Catch。它是一个仅限标题的框架,只有很少的断言。例如。 REQUIRE(a == b)
将起作用,a
和b
的值将在失败时得到解决。不需要夹具类或样板,只需在测试用例中定义部分,它将执行N次,具有不同的部分。它非常简单,易读。另一方面,默认情况下编译需要时间。
答案 2 :(得分:1)
QtTest(高达Qt 5.7)不提供在uut中预期断言的能力,而Googletest确实具有死亡测试的概念,并且可以进行测试以测试断言。我们发现这在Googletest中非常有用,并且在QtTest中缺少它!