-1
谷歌測試中是否有一些ASSERT_AND_RETURN
宏測試某些內容,如果它爲假,則引發一個斷言並返回一個值?Google Test中的「斷言並返回」宏?
谷歌測試中是否有一些ASSERT_AND_RETURN
宏測試某些內容,如果它爲假,則引發一個斷言並返回一個值?Google Test中的「斷言並返回」宏?
實際上,每個ASSERT_XXX
函數返回 - 但它不返回值 - 假定該函數(大多數情況下由宏創建的函數)是void函數。
當在另一個函數調用的函數中使用ASSERT_XXX
時,有時會出現這種情況。要檢查功能上斷言失敗 - 你需要使用ASSERT_NO_FATAL_FAILURE
見例如
void assertNotNull(int *p)
{
ASSERT_THAT(p, NotNull(p));
}
void assertSizeIs(int actual, int expected)
{
ASSERT_EQ(actual, expected);
}
TEST(A, B)
{
std::pair<int*,int> p = createArray(7);
ASSERT_NO_FATAL_FAILURE(assertNotNull(p.first));
ASSERT_NO_FATAL_FAILURE(assertSizeIs(p.second, 7));
for(int i = 0; i < 7; ++i)
ASSERT_EQ(0, p.first[i]);
}
ASSERT_xxx將失敗的測試,並在其軌道阻止它。你的意思是EXPECT_AND_RETURN? –
爲什麼我會稱之爲期待在gtest中期望繼續前進? 我的意思是這樣的: bool Foo(){ ... ASSERT_AND_RETURN(x!= 0,false); int y = 1/x; ... } –