在GoogleTest中使用Assert和Expect

2022-08-26 00:00:00 unit-testing c++ googletest
当断言_*宏会导致测试用例终止时,Expect_*宏会继续求值。 我想知道决定使用其中一个的标准是什么。


解决方案

当必须满足条件时,使用ASSERT-如果不满足,则测试立即停止。如果没有此条件,则在测试的其余部分不具有语义意义时使用此选项。

当条件应该成立时使用EXPECT,但在条件不成立的情况下,我们仍然可以从继续测试中获得价值。(不过,测试最终仍将失败。)

经验法则是:默认情况下使用EXPECT,除非要求在剩余的测试中使用,在这种情况下,您应该为该特定条件使用ASSERT


这在primer:

中得到响应
通常EXPECT_*是首选,因为它们允许在一次测试中报告多个故障。但是,如果断言失败时继续执行没有意义,则应该使用ASSERT_*

相关文章