例如,我有一个代码:
TEST_F(Testmyexception, testthrownexception)
{
EXPECT_THROW(throw new myexception(), myexception);
}
编译并运行后,会出错:实际:它会抛出不同的类型。
有没有人知道答案?
谢谢,
答案 0 :(得分:9)
你正在向myexception
投掷一个指针,所以你必须要在支票中指出一个指针:
EXPECT_THROW(throw new myexception(), myexception*);
答案 1 :(得分:5)
我想你想要:
EXPECT_THROW(throw std::underflow_error(""), std::underflow_error);
BTW抛出myexception实例的语法是:
throw myexception();
" new"不应该在这里使用关键字。