问题描述
我运行 gtest 时得到这个输出
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from Test
[ RUN ] Test.Foo
它在此之后退出。
我的代码如下:
//Exception file
class myex : public std::runtime_error {
myex(const std::string& reason)
: std::runtime_error(reason){
}
}
//TestFile
class Test : public testing::Test {
public:
MockClass mc; // Mock class inherits from Iclass
std::unique_ptr<classtoTest> obj;
void SetUp(){
obj = std::make_unique<classtoTest>(mc);
}
void bar() {
std::string error = "error";
throw myex(error);
}
}
TEST_F(Test,Bar) {
EXPECT_THROW(bar(),myex); //works. Print PASS.
}
TEST_F(Test,Foo) {
EXPECT_THROW(obj->fn(mc),myex); // doesnot work. Prints not PASS/FAIL.
}
TEST_F(Test,test1) {
obj->fn(mc); // prints : unkNown file: error: (correctly prints the reason)
}
//ClasstoTest file
class classtoTest {
void fn(Iclass obj) {
obj.some_fn();
throw myex("Error has occurred");
}
}
我不明白为什么从 classtoTest 抛出的错误被 gtest 识别为
而且,为什么它不显示 PASS/FAIl
EXPECT_THROW(fn(),myex)
但奇怪地退出。
如果我犯了任何错误,如果您需要更多信息,请告诉我。 TIA。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)