2010-09-21 25 views
26

我正在編寫一些Google測試框架的單元測試。但是我想檢查一些斷言是否放置良好並且有用。有沒有辦法在Google測試中發現斷言?被測如何使用Google測試捕捉斷言?

示例代碼:

int factorial(int n){ 
    assert(n >= 0); 
    //.... 
} 

然後測試:

#include <gtest/gtest.h> 
TEST(FactorialTest,assertNegative){ 
    EXPECT_ANY_THROW({ 
     factorial(-1); 
    }); 
} 

EXPECT_ANY_THROW不趕斷言,但唯一的例外。我正在尋找一個解決方案來捕捉斷言。

回答

22

Google測試提供ASSERT_DEATH, EXPECT_DEATH and other related macros

這個問題和What are Google Test, Death Tests是彼此的答案。這是否使他們重複,或不? ;-)

+0

謝謝。我所需要的一切。那我該如何解決這個問題呢? – Killrazor 2010-09-21 09:26:20

+2

@Killrazor:如果你認爲這是一個騙局,那麼爲了結束一個問題,你會得到5個人,每個人都有足夠的代表獲得該許可,並投票結束。但我不會擔心這個問題 - 如果這個問題還沒有出現,這個問題將很快從「近期」,「活躍」和「熱門」問題清單中消失,所以這不是任何人的方式。它可能會使用不同的術語,因此會顯示在不同的Google搜索中。 – 2010-09-21 10:19:38

+0

重複的答案不必構成重複的問題。但是,你的答案基本上只是一個鏈接---這是不鼓勵的。 – 2013-02-06 22:54:30