AI代码解释 EXPECT_*和ASSERT_*的区别:(1)、EXPECT_*失败时,案例继续往下执行;(2)、ASSERT_*失败时,直接在当前函数中返回,当前函数中ASSERT_*后面的语句将不会执行,退出当前函数,并非退出当前案例。 断言:布尔值检查、数值型数据检查、字符串检查、显示成功或失败、异常检查、Predicate Assertions、浮点型检查、Wind...
EXPECT_ANY_THROW(Foo(10, 0)); EXPECT_THROW(Foo(0, 5), char*); } 八、Predicate Assertions 在使用EXPECT_TRUE或ASSERT_TRUE时,有时希望能够输出更加详细的信息,比如检查一个函数的返回值TRUE还是FALSE时,希望能够输出传入的参数是什么,以便失败后好跟踪。因此提供了如下的断言: Google人说了,他们只提供<=...
EXPECT_DOUBLE_EQ(val1, val2); the two double values are almost equal ASSERT_NEAR(val1, val2, abs_error); EXPECT_NEAR(val1, val2, abs_error); the difference between val1 and val2 doesn’t exceed the given absolute error ASSERT_THROW(statement, exception_type); EXPECT_THROW(statement,...
EXPECT_EQ(*n,1); EXPECT_EQ(q1_.size(),0); delete n; n=q2_.Dequeue(); ASSERT_NE(n, nullptr); EXPECT_EQ(*n,2); EXPECT_EQ(q2_.size(),1); delete n; } 上面的例子中,我们既使用了 ASSERT_*,也使用了 EXPECT_*。使用 EXPECT_* 是因为我们想让测试函数运行下去,即使某些用例失败了。...
| ASSERT_THROW(statement, exception_type); | EXPECT_THROW(statement, exception_type); | statement抛出给定类型的异常 | | ASSERT_ANY_THROW(statement); | EXPECT_ANY_THROW(statement); | statement抛出任何类型的异常 | | ASSERT_NO_THROW(statement); | EXPECT_NO_THROW(statement); | statement不抛出...
2.丰富的断言宏:Google Test 提供了多种断言宏,例如 EXPECT_EQ、ASSERT_TRUE、EXPECT_THROW 等,用于验证测试的预期结果。这些断言宏使测试代码更加清晰和可读。 3.参数化测试:Google Test 支持参数化测试,允许你在同一个测试用例中多次运行相同或不同的测试数据。这可以大大减少代码重复。 4.测试过滤:你可以使用通...
throw "don't do that"; } int c = a % b; if (c == 0) return b; return Foo(b, c); } TEST(FooTest, HandleZeroInput) { EXPECT_ANY_THROW(Foo(10, 0)); EXPECT_THROW(Foo(0, 5), char*); } 1. 2. 3. 4. 5. 6. ...
gtest 中断言的宏可以分为两类,一类是 ASSERT 宏,另一类就是 EXPECT宏了 1、ASSERT_系列:如果当前点检测失败则退出当前测试 2、EXPECT_系列:如果当前点检测失败则继续往下执行 如果你对自动输出的错误信息不满意的话,也是可以通过operator<<能够在失败的时候打印日志,将一些自定义的信息输出 ...
throw"b==0"; EXPECT_EQ(0, a\b); printf("End of Func"); } TEST(FooTest, Demo1) { Func(5,0); printf("End Call Func(5, 0)"); } int_tmain(intargc, _TCHAR*argv[]) { testing::GTEST_FLAG(catch_exceptions)=1; testing::InitGoogleTest(&argc, argv); ...