我正试图通过Google测试框架测试一个C ++程序。
我的代码:
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();
}
但是,我需要以不同的方式进行单元测试。
我的期望:我需要获取第一个测试的返回值(结果)并在第二个测试中将其用作动态(如果第一个测试失败,那么程序应该终止显示错误详情)。当第一次测试和第二次测试都没问题(未失败)时,第一次和第二次测试的返回值应参数化为第三次测试。
所需的算法(作为您的帮助):
第1步:运行第一次测试addNumbers(14, 23)
;
步骤2:检查预期值和返回值(A);
步骤3.1:如果测试失败,请终止显示错误详细信息的程序;
步骤3.2:如果确定(未失败),请运行第二次测试subtractNumbers(A, 12)
;
步骤4:检查预期值和返回值(B);
步骤5.1:如果测试失败,请终止显示OK详细信息和错误详细信息的程序;
步骤5.2:如果确定(未失败),请运行第三次测试addNumbers(A,B)
;
步骤6:检查预期值和返回值;
步骤7.1:如果测试失败,请终止显示OK详细信息和错误详细信息的程序;
步骤7.2:如果确定,请显示确定详细信息。
答案 0 :(得分:0)
使用各种Traceback (most recent call last):
File "C:/Users/Mathias/git/pdfconv/tests\test_converter.py", line 89, in test_convert_presentation2pdf_pptx
pdfconv.converter.convert_presentation2pdf(input_path, output_path)
File "c:\users\mathias\git\pdfconv\pdfconv\converter.py", line 116, in convert_presentation2pdf
_convert_powerpoint2pdf(input_path, output_path)
File "c:\users\mathias\git\pdfconv\pdfconv\converter.py", line 179, in _convert_powerpoint2pdf
slides.SaveAs(output_path, FileFormat=PP_FORMAT_PDF)
_ctypes.COMError: (-2147467259, 'Unbekannter Fehler', (u'Presentation (unknown member) : PowerPoint kann ^0 auf ^1 nicht speichern.', u'Microsoft PowerPoint 2013', u'', 0, None))
宏将导致测试在失败时中止。您可以将ASSERT_*
转换为EXPECT_EQ
,然后将它们全部放在同一ASSERT_EQ
内。
TEST()