我想通过谷歌测试框架来测试一个C++程序。如何使用从gtest返回值到另一个测试
我的代码:
int addNumbers(int a, int b)
{
return a + b;
}
int subtractNumbers(int a, int b)
{
return a - b;
}
单元测试代码:
//first test
TEST(testMath, addTest1)
{
EXPECT_EQ(37, addNumbers(14, 23));
getchar();
}
//second test
TEST(testMath, subtractTest1)
{
EXPECT_EQ(25, subtractNumbers(37, 12));
getchar();
}
//third test
TEST(testMath, addTest2)
{
EXPECT_EQ(62, addNumbers(37, 25));
getchar();
}
但是,我需要我的单元测试是在一个不同的方式。我需要得到第一个测试的返回值(结果),并在第二个测试中用它作为动态(如果第一个测试失败,那么程序应该终止显示错误的详细信息)。当第一次测试和第二次测试都OK(没有失败)时,第一次和第二次测试的返回值应该参数化为第三次测试。
期望算法(如你的帮助):
第1步:第一次测试addNumbers(14, 23)
;
步骤2:检查预期值和返回值(A);
步骤3.1:如果测试失败,则终止该程序表示错误详细信息;
步骤3.2:如果行(未失败),运行第二测试subtractNumbers(A, 12)
;
步骤4:检查预期值和返回值(B);
步骤5.1:如果测试失败,则终止显示行详细信息和错误详细信息的程序;
步骤5.2:如果行(未失败),运行第三测试addNumbers(A,B)
;
第6步:检查预期值和返回值;
步骤7.1:如果测试失败,终止显示OK详细信息和错误信息的程序;
步骤7.2:如果确定,则显示确定的详细信息。
为什么你想停止测试的第一个错误?由于测试应该是独立的,所有失败的测试都允许一次修复多个测试。它与汇编相同,所有错误都比第一个IMO停下来要好。 – Jarod42
[OT]:您不应该在测试中使用'getchar()',如果您想暂停执行以进行调试,请使用* breakpoint *。 – Jarod42