C++ 预期故障与致命故障之间的差异;朴素的断言

C++ 预期故障与致命故障之间的差异;朴素的断言,c++,googletest,C++,Googletest,首先,我很抱歉我的英语不好 在Google Test的github中,它以这种方式解释expect_fatal_失败断言: 预期\u致命\u失败(语句、子字符串);声明 生成一个致命(例如ASSERT_*)故障,其消息包含 给定子串 但当我运行expect\u fatal\u failure的项目时,我找不到执行语句和expect\u NONFATAL\u failure(语句,子字符串)之间的区别&只是执行语句 这是我的密码 #include "gtest/gtest.h" #include

首先,我很抱歉我的英语不好

在Google Test的github中,它以这种方式解释expect_fatal_失败断言:

预期\u致命\u失败(语句、子字符串);声明 生成一个致命(例如ASSERT_*)故障,其消息包含 给定子串

但当我运行expect\u fatal\u failure的项目时,我找不到执行语句和expect\u NONFATAL\u failure(语句,子字符串)之间的区别&只是执行语句

这是我的密码

#include "gtest/gtest.h"
#include "gtest/gtest-spi.h"

void failTwice()
{
   EXPECT_TRUE(false) << "fail first time";
   ASSERT_TRUE(false) << "fail second time";
}

TEST(FailureTest, FirstTest)
{
   EXPECT_NONFATAL_FAILURE(failTwice(), "time");
   failTwice();
}

TEST(FailureTest, SecondTest)
{
   EXPECT_NONFATAL_FAILURE(failTwice(), "second");
   failTwice();
}

int main(int argc, char* argv[])
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}
#包括“gtest/gtest.h”
#包括“gtest/gtest spi.h”
无效失败两次()
{

预期为真(假)输出基本上是告诉您发生了什么:
EXPECT\u NONFATAL\u FAILURE
语句告诉Google Test在调用
failtweep
时预期一次失败,但它会产生两次。注释该函数中的第二行并删除对
failtweep
的额外调用,两次测试都会通过,例如

void failNonFatallyOnFalse(bool param)
{
   EXPECT_TRUE(param) << "fail non-fatally";
}

void failFatallyOnFalse(bool param)
{
   ASSERT_TRUE(param) << "fail fatally";
}

TEST(FailureTest, TestFailNonFatally)
{
   EXPECT_NONFATAL_FAILURE(failNonFatallyOnFalse(false), "fail non-fatally");
}

TEST(FailureTest, TestFailFatally)
{
   EXPECT_FATAL_FAILURE(failFatallyOnFalse(false), "fail fatally");
}
void failunCatalyOnFalse(布尔参数)
{

EXPECT_TRUE(参数)输出基本上是告诉您发生了什么:
EXPECT\u NONFATAL\u FAILURE
语句告诉Google Test在调用
failtweep
时预期一次失败,但它会产生两次。注释该函数中的第二行并删除对
failtweep
的额外调用,两次测试都会通过,例如

void failNonFatallyOnFalse(bool param)
{
   EXPECT_TRUE(param) << "fail non-fatally";
}

void failFatallyOnFalse(bool param)
{
   ASSERT_TRUE(param) << "fail fatally";
}

TEST(FailureTest, TestFailNonFatally)
{
   EXPECT_NONFATAL_FAILURE(failNonFatallyOnFalse(false), "fail non-fatally");
}

TEST(FailureTest, TestFailFatally)
{
   EXPECT_FATAL_FAILURE(failFatallyOnFalse(false), "fail fatally");
}
void failunCatalyOnFalse(布尔参数)
{

EXPECT_TRUE(param)ohhh…似乎我没有仔细查看结果。那么它可以告诉我是否存在“a”故障,包括子字符串,对吗?您可以断言只存在一个故障,并且在其消息中有一个特定的子字符串。因此,这就是“a”失败,我猜。哦…似乎我没有仔细地看到结果。那么它可以告诉我“a”失败的存在,包括子字符串,对吗?你可以断言只存在一个失败,并且在它的消息中有一个特定的子字符串。我猜这就是“a”失败。