gpt4 book ai didi

c++ - EXPECT_THROW - 实际 : it throws a different type, 谷歌测试

转载 作者:行者123 更新时间:2023-11-27 23:56:17 25 4
gpt4 key购买 nike

大家好,我有这个构造函数

Matrix::Matrix(size_t row, size_t col)
{
if(row < 1 || col < 1)
throw new std::runtime_error("Minimalni velikost matice je 1x1");
matrix = std::vector<std::vector< double > >(row,std::vector<double>(col, 0));
}

和这个测试

Matrix *TestedMatrix;
EXPECT_THROW(TestedMatrix = new Matrix(-2,3),std::runtime_error );

但我仍然得到不同类型的豁免。我也试过 std::runtime_error* 但结果是一样的。一开始我想使用 EXPECT_ANY_THROW,但它没有显示在我的代码覆盖率中。感谢帮助 ! :)

最佳答案

不要调用new

Matrix::Matrix(size_t row, size_t col)
{
if(row < 1 || col < 1)
throw std::runtime_error("Minimalni velikost matice je 1x1");
matrix = std::vector<std::vector< double > >(row,std::vector<double>(col, 0));
}

new 将返回一个 void*,这就是您收到“异常类型不同”错误的原因。

关于c++ - EXPECT_THROW - 实际 : it throws a different type, 谷歌测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42404191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com