/*单元测试用例,用例名为test_net_create*/
START_TEST(test_neg_create)
{
Money *m = money_create(-1, "USD");
fail_unless (m = = NULL, "NULL should be returned on attempt to create with a negative amount");
}
END_TEST
/*单元测试用例,用例名为test_net_create*/
START_TEST(test_zero_create)
{
Money *m = money_create(0, "USD");
fail_unless (money_amount(m) = = 0,
"Zero is a valid amount of money");
}
END_TEST
/*单元测试组装,将所有单元测试组装到一个“箱子”里面,“箱子”名为Money*/
Suite *money_suite (void)
{
Suite *s = suite_create("Money");
/*测试用例分组*/
TCase *tc_core = tcase_create("Core");
TCase *tc_limits = tcase_create("Limits");
/*将分组加入“箱子”
suite_add_tcase (s, tc_core);
suite_add_tcase (s, tc_limits);
/*分别将不同用例加入分组*/
tcase_add_test (tc_core, test_create);
tcase_add_checked_fixture (tc_core, setup, teardown); /*此用例注册初始化和结束函数*/
/*以下用例将不注册初始化和结束函数*/
tcase_add_test (tc_limits, test_neg_create);
tcase_add_test (tc_limits, test_zero_create);
return s;
}
/*执行测试用例*/
int main (void)
{
int nf;
Suite *s = money_suite();
SRunner *sr = srunner_create(s);
srunner_run_all (sr, CK_NORMAL);
nf = srunner_ntests_failed(sr);
srunner_free(sr);
suite_free(s);
return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
}
3.2.3 制作发行版:
制作发行版只须配置另外一份Makefile.am,在此文件中的源文件列表加入执行主体,即应用程序包含main函数的文件;也可在制作测试版的Makefile.am中加入发行版的配置,这样就可以直接生成测试版程序和发行版程序。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/