throw"don't do that"; } intc=a%b; if(c==0) returnb; returnFoo(b, c); } TEST(FooTest, HandleZeroInput) { EXPECT_ANY_THROW(Foo(10,0)); EXPECT_THROW(Foo(0,5),char*); } 八、Predicate Assertions 在使用EXPECT_TRUE或ASSERT_TRUE时,有时希望能够输出更加详细的信息,比如检查一个函数的...
EXPECT_DOUBLE_EQ(7.0, ((double) val)/); //double类型 EXPECT_NEAR(6.0, ((float) val)/, ); // 差值小于1 // EXPECT_THROW(st.pop(), std::out_of_range); // 预期st.pop()会抛出一个out_of_range异常 // EXPECT_NO_THROW(st.pop()); // 预期st.pop()会抛一个异常 // EXPECT_NO...
比较值都可以是任意编译器能识别的可比较类型,当然包括指针,但是注意空指针比较:使用EXPECT_EQ(ptr, nullptr) 而不是 EXPECT_EQ(ptr, NULL),这个规则对于其他比较类的断言也适用.适用于字符串 std::string .但不适用于C string,如果传入的值为C string的话只比较内存地址不比较实际值.字符串断言...
EXPECT_THROW的想法是,宏捕获异常。如果您自己抓到了异常,那么gmock现在就不会有任何抛出的异常。
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(BaseCheck, Expect) { EXPECT_TRUE(1==1); EXPECT_TRUE(2==3); EXPECT_TRUE(3==3); } 上面两个测试特例中,第二个局部测试都是不成立的。由于EXPECT_*不会影响执行流程,所以即使第8行出错,之后的流程(第9行)也执行了。但是ASSERT_*会影响,所以第3行出错后,第4行没有执行。那么GTest是如何做到...
statement doesn't throw any exception 我们举一个例子 代码语言:javascript 复制 void ThrowException(int n) { switch (n) { case 0: throw 0; case 1: throw "const char*"; case 2: throw 1.1f; case 3: return; } } TEST(ThrowException, Check) { EXPECT_THROW(ThrowException(0), int); ...
TEST(BaseCheck, Expect) { EXPECT_TRUE(1==1); EXPECT_TRUE(2==3); EXPECT_TRUE(3==3); } 上面两个测试特例中,第二个局部测试都是不成立的。由于EXPECT_*不会影响执行流程,所以即使第8行出错,之后的流程(第9行)也执行了。但是ASSERT_*会影响,所以第3行出错后,第4行没有执行。那么GTest是如何做到...
EXPECT_STREQ(L"CoderZh",wstrCoderZh.c_str()); } 六、显示返回成功或失败 直接返回成功:SUCCEED(); 返回失败: TEST(ExplicitTest,Demo) { ADD_FAILURE()<<"Sorry";//NoneFatalAsserton,继续往下执行。 //FAIL();//FatalAssertion,不往下执行该案例。
TEST(ExceptionTest, ExpectThrowsSpecificException) { try { throwException(); FAIL() << "throwException() should throw an error\n"; } catch (TestException& exception) { EXPECT_THAT(std::string(exception.what()), Eq("VALID_SETTING")); EXPECT_THAT(exception.errorCode, Eq(20)); } catch ...