c++之EXPECT_NO_THROW语句的gtest捕获结果 假设我有一个方法可以创建一个非平凡可构造的对象,该对象被 RVO 返回给调用者。例如 MyComplexClass value = deserialize(); 反序列化在失败时抛出异常,所以我想做类似的事情 EXPECT_NO_THROW(MyComplexClass value = deserialize()); 当然,value 超出了范围(因为宏引入了...
目录1.编译及学习资料 1.1编译gtest 1.2学习文档及资料 2.gtest总结 2.1gtest中的术语 2.2断言 2.2.1基本断言 2.2.2Binary Comparison...与 gtest_maind.lib/gtest_main.lib的区别?...一个空指针NULL 与 空字符...
这篇文章主要总结gtest中的所有断言相关的宏。gtest中,断言的宏可以理解为分为两类,一类是 ASSERT系列,一类是EXPECT系列。一个直观的解释就是: 1.ASSERT_*系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。 2.EXPECT_*系列的断言,当检查点失败时,继续往下执行。
EXPECT_NO_THROW(Value v(0)); EXPECT_NO_THROW(Value v(0.0)); EXPECT_NO_THROW(Value v(0.0f)); EXPECT_NO_THROW(Value v('\0')); EXPECT_NO_THROW(Value v(false)); EXPECT_NO_THROW(Value v(NULL)); EXPECT_NO_THROW(Value v(nullptr)); EXPECT_NO_THROW(Value v(Value::Null));Valuev...
class TestException : public std::runtime_error { public: TestException(const std::string& message) : runtime_error(message) { } int errorCode; }; void throwException() { // Test Invalid Exception properties TestException e("INVALID_SETTING"); e.errorCode = 22; throw e; // Test Vali...
建议读者试一下换成 ASSERT_宏的不同之处。...C++程序常用异常(exception)来返回出错信息,gtest为异常测试提供了专用的测试宏: ASSERT宏 EXPECT宏 功能 ASSERT_NO_THROW EXPECT_NO_THROW 不抛出异常...这样,即使删掉 divide函数里的 if判断,测试代码的 EXPECT_ANY_THROW宏也会成功捕获异常。
ASSERT_NO_THROW(statement); EXPECT_NO_THROW(statement); statement doesn't throw any exception 例如: int Foo(int a, int b) { if (a == 0 || b == 0) { throw "don't do that"; } int c = a % b; if (c == 0) return b; ...
throw any exception 例如: int Foo(int a, int b) { if (a == 0 || b == 0) { 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...