4

例如,我有这样的代码:

TEST_F(Testmyexception, testthrownexception)
{
  EXPECT_THROW(throw new myexception(), myexception);
} 

编译运行后报错:Actual: it throws a different type。

有没有人知道答案?

谢谢,

4

2 回答 2

9

您正在抛出一个指向 a 的指针myexception,因此您必须在检查中期待一个指针:

EXPECT_THROW(throw new myexception(), myexception*);
于 2013-11-09T00:41:48.513 回答
5

我想你想要:

EXPECT_THROW(throw std::underflow_error(""), std::underflow_error);

顺便说一句,抛出 myexception 实例的语法是:

throw myexception();

此处不应使用“new”关键字。

于 2014-08-02T08:20:13.077 回答