虽然 ASSERT_* 宏会导致测试用例终止,但 EXPECT_* 宏会继续其评估。 我想知道哪个是决定是否使用其中一个的标准。
最佳答案
当条件 必须 成立时使用 ASSERT
- 如果不成立,测试就停在那里。当测试的其余部分在没有此条件的情况下没有语义时,请使用此条件。
当条件应该成立时使用EXPECT
,但在不成立的情况下,我们仍然可以从继续测试中获得值(value)。 (不过,测试最终还是会失败。)
经验法则是:默认使用 EXPECT
,除非你要求为其余的测试保留一些东西,在这种情况下你应该使用 针对特定条件断言
。
这在 primer 中得到回应:
Usually
EXPECT_*
are preferred, as they allow more than one failures to be reported in a test. However, you should useASSERT_*
if it doesn't make sense to continue when the assertion in question fails.
关于c++ - 在 GoogleTest 中使用 ASSERT 和 EXPECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2565299/