您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
單元測試框架Google Test系列之 - 斷言
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/12/10 13:49:56 ] 推薦標簽:

八、Predicate Assertions

在使用EXPECT_TRUE或ASSERT_TRUE時,有時希望能夠輸出更加詳細的信息,比如檢查一個函數(shù)的返回值TRUE還是FALSE時, 希望能夠輸出傳入的參數(shù)是什么,以便失敗后好跟蹤。因此提供了如下的斷言:

Google人說了,他們只提供<=5個參數(shù)的,如果需要測試更多的參數(shù),直接告訴他們。下面看看這個東西怎么用。
bool MutuallyPrime(int m, int n)
{
    return Foo(m , n) > 1;
}

TEST(PredicateAssertionTest, Demo)
{
    int m = 5, n = 6;
    EXPECT_PRED2(MutuallyPrime, m, n);
}

 

當失敗時,返回錯誤信息:

error: MutuallyPrime(m, n) evaluates to false, where
m evaluates to 5
n evaluates to 6

如果對這樣的輸出不滿意的話,還可以自定義輸出格式,通過如下:

用法示例:
testing::AssertionResult AssertFoo(const char* m_expr, const char* n_expr, const char* k_expr, int m, int n, int k) {
    if (Foo(m, n) == k)
        return testing::AssertionSuccess();
    testing::Message msg;
    msg << m_expr << " 和 " << n_expr << " 的大公約數(shù)應(yīng)該是:" << Foo(m, n) << " 而不是:" << k_expr;
    return testing::AssertionFailure(msg);
}

TEST(AssertFooTest, HandleFail)
{
    EXPECT_PRED_FORMAT3(AssertFoo, 3, 6, 2);
}

失敗時,輸出信息:

error: 3 和 6 的大公約數(shù)應(yīng)該是:3 而不是:2

是不是更溫馨呢,呵呵。

上一頁12345下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd