gpt4 book ai didi

c++ - googleTest 继续测试

转载 作者:太空狗 更新时间:2023-10-29 23:23:24 25 4
gpt4 key购买 nike

我想知道我是在测试我在这个测试中列出的所有等式,还是只测试第一个。

class SomethingTest : public testing::Test
{
public:
SomethingTest() { }
virtual ~SomethingTest() { }
};

TEST_F(SomethingTest, Score)
{
Computer computer;
FourInARowStrategy* strategy = new FourInARowStrategy();

vector<vector<int>> brd;
for(int i=0; i<6 ;i++)
{
vector<int> row ;
for(int j=0;j<7;j++)
row.push_back(0);
brd.push_back(row);
}

brd[5][5]=1;
brd[5][4]=2;
brd[5][3]=1;
brd[5][2]=1;
brd[5][1]=1;
brd[4][5]=2;
brd[4][4]=2;
brd[4][3]=1;
brd[4][2]=1;
brd[3][2]=2;
brd[3][1]=2;
brd[4][1]=2;

strategy->setGameBoard(brd);
strategy->displayBoard();
EXPECT_EQ(9,computer.rowScoreAPlay(2,3,3,strategy));
EXPECT_EQ(9,computer.scoreAPlay(2,3,3,strategy));
EXPECT_EQ(0,computer.colScoreAPlay(2,3,3,strategy));
EXPECT_EQ(5,computer.colScoreAPlay(1,3,3,strategy));
}

//...
}

你有谷歌单元测试的引用,以及良好的单元测试开发吗?

感谢和问候。

最佳答案

无论它们是通过还是失败,您都在测试它们。这是因为您正在使用 EXPECT_EQ而不是 ASSERT_EQ .

来自 the docs :

when they fail, ASSERT_* yields a fatal failure and returns from the current function, while EXPECT_* yields a nonfatal failure, allowing the function to continue running.

通常,EXPECT_*是更好的选择,因为测试的其余部分可以继续运行并提供有用的输出。然而,ASSERT_*如果测试不应该继续会更好。

例如,如果您有 std::vector<std::string> results如果您希望将“OK”作为第一个元素,您可以这样做:

ASSERT_FALSE(results.empty());  // No point continuing if results is empty
EXPECT_EQ("OK", results[0]); // Check first element

关于c++ - googleTest 继续测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11359758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com