如何解决Google 测试不打印 PASS/FAIL异常退出
我运行 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 举报,一经查实,本站将立刻删除。