ASSERT_EQ(1, 2) << "1 is not equal to 2"; EXPECT_EQ(1, 2) << "1 is not equal to 2"; 任何可以传递给 ostream 的数据都可以作为自定义错误信息传递给断言,比如 C 字符串、string对象。 那么,测试的基本手段就是利用断言,除了判断型的断言之外,googletest 还提供了其它类型的断言用于协助测试,...
GoogleTest 的断言是类似于函数调用的宏。通过对其行为进行断言来测试一个类或函数。当断言失败时,GoogleTest 会打印断言的源文件和行号位置以及失败消息。还可以提供自定义失败消息,该消息将附加到 GoogleTest 的消息中。 EXPECT 与 ASSERT 宏的格式有两种: EXPECT_*:在失败时会产生非致命故障,不会中止当前功能。
在出错的情况下,ASSERT_*的else里return了。而EXPECT_*的else没有return。 二进制比较断言 GTest还提供了二进制对比宏 Fatal assertion Nonfatal assertion Verifies 全称 ASSERT_EQ(val1,val2); EXPECT_EQ(val1,val2); val1 == val2 equal ASSERT_NE(val1,val2); EXPECT_NE(val1,val2); val1 != va...
ASSERT_GE(val1, val2)EXPECT_GE(val1, val2)val1 >= val2 说明: EQ:EQual NE:Not Equal LT:Less Than LE:Less Equal GT:Greater Than GE:Greater Equal 比较值都可以是任意编译器能识别的可比较类型,当然包括指针,但是注意空指针比较:使用EXPECT_EQ(ptr, nullptr)而不是EXPECT_EQ(ptr, NULL),这个规...
例如有一个函数equal(a,b),那么就是ASSERT_PRED2(equal,a,b) 与ASSERT_EQ、ASSERT_TRUE()这些断言的区别在于输出的错误信息不同,同时它的功能更加强大 谓词格式化程序断言# 普通的断言输出信息的内容是预定好的,如果想要自定义输出的内容,可以使用谓词格式化程序断言 ...
void AssertHelper::operator=(const Message& message) const { UnitTest::GetInstance()-> AddTestPartResult(data_->type, data_->file, data_->line, AppendUserMessage(data_->message, message), UnitTest::GetInstance()->impl() ->CurrentOsStackTraceExceptTop(1) // Skips the stack frame for this...
TEST(ExplicitTest, Demo) { ADD_FAILURE()<<"Sorry";//None Fatal Asserton,继续往下执行。 //FAIL();//Fatal Assertion,不往下执行该案例。 SUCCEED(); } 七、异常检查 例如: intFoo(inta,intb) { if(a==0||b==0) { throw"don't do that"; ...
TEST(ExplicitTest, Demo) { ADD_FAILURE()<<"Sorry";//None Fatal Asserton,继续往下执行。 //FAIL();//Fatal Assertion,不往下执行该案例。 SUCCEED(); } 七、异常检查 例如: intFoo(inta,intb) { if(a==0||b==0) { throw"don't do that"; ...
TEST(AssertFooTest, HandleFail) { EXPECT_PRED_FORMAT3(AssertFoo,3,6,2); } 失败时,输出信息: error: 3 和 6 的最大公约数应该是:3 而不是:2 是不是更温馨呢,呵呵。 九、浮点型检查 对相近的两个数比较: 同时,还可以使用: EXPECT_PRED_FORMAT2(testing::FloatLE, val1, val2); ...
usegoogletest::prelude::*;#[test]fnfails_and_panics(){letvalue =2;assert_that!(value,eq(4));}#[gtest]fntwo_logged_failures(){letvalue =2;expect_that!(value,eq(4));// Test now failed, but continues executing.expect_that!(value,eq(5));// Second failure is also logged.}#[test...