关闭

玩转Google单元测试框架gtest系列之二:断言

发表于:2010-3-31 14:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Killmyday(cnblogs)    来源:51Testing软件测试网采编

  三、布尔值检查

Fatal assertion Nonfatal assertion Verifies
ASSERT_TRUE(condition); EXPECT_TRUE(condition); condition is true
ASSERT_FALSE(condition); EXPECT_FALSE(condition); condition is false

  四、数值型数据检查

Fatal assertion Nonfatal assertion Verifies
ASSERT_EQ(expected, actual); EXPECT_EQ(expected, actual); expected == actual
ASSERT_NE(val1, val2); EXPECT_NE(val1, val2); val1 != val2
ASSERT_LT(val1, val2); EXPECT_LT(val1, val2); val1 < val2
ASSERT_LE(val1, val2); EXPECT_LE(val1, val2); val1 <= val2
ASSERT_GT(val1, val2); EXPECT_GT(val1, val2); val1 > val2
ASSERT_GE(val1, val2); EXPECT_GE(val1, val2); val1 >= val2

  五、字符串检查

Fatal assertion Nonfatal assertion Verifies
ASSERT_STREQ(expected_str, actual_str); EXPECT_STREQ(expected_str, actual_str); the two C strings have the same content
ASSERT_STRNE(str1, str2); EXPECT_STRNE(str1, str2); the two C strings have different content
ASSERT_STRCASEEQ(expected_str, actual_str); EXPECT_STRCASEEQ(expected_str, actual_str); the two C strings have the same content, ignoring case
ASSERT_STRCASENE(str1, str2); EXPECT_STRCASENE(str1, str2); the two C strings have different content, ignoring case

  *STREQ*和*STRNE*同时支持char*和wchar_t*类型的,*STRCASEEQ*和*STRCASENE*却只接收char*,估计是不常用吧。下面是几个例子:

TEST(StringCmpTest, Demo)
{
    
char* pszCoderZh = "CoderZh";
    wchar_t
* wszCoderZh = L"CoderZh";
    std::
string strCoderZh = "CoderZh";
    std::wstring wstrCoderZh 
= L"CoderZh";

    EXPECT_STREQ(
"CoderZh", pszCoderZh);
    EXPECT_STREQ(L
"CoderZh", wszCoderZh);

    EXPECT_STRNE(
"CnBlogs", pszCoderZh);
    EXPECT_STRNE(L
"CnBlogs", wszCoderZh);

    EXPECT_STRCASEEQ(
"coderzh", pszCoderZh);
    
//EXPECT_STRCASEEQ(L"coderzh", wszCoderZh);    不支持

    EXPECT_STREQ(
"CoderZh", strCoderZh.c_str());
    EXPECT_STREQ(L
"CoderZh", wstrCoderZh.c_str());
}

  六、显示返回成功或失败

  直接返回成功:SUCCEED();

  返回失败:

Fatal assertion Nonfatal assertion
FAIL(); ADD_FAILURE();

TEST(ExplicitTest, Demo)
{
    ADD_FAILURE() 
<< "Sorry"// None Fatal Asserton,继续往下执行。

    
//FAIL(); // Fatal Assertion,不往下执行该案例。

    SUCCEED();
}

52/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号