APR中的单元测试框架:深入分析内部实现

发表于:2010-1-08 13:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:yangzb(Javaeye)    来源:51Testing软件测试网采编

  APR单元测试框架实现的实在简单,除了断言集之外ABTS只向外部暴露了两个接口:

abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full);
void abts_run_test(abts_suite *ts, test_func f, void *value);

#define ADD_SUITE(suite) abts_add_suite(suite, __FILE__);

  我们暂时不看函数的实现,先看看几个核心的数据结构。

struct sub_suite {
    const char *name;
    int num_test;
    int failed;
    int not_run;
    int not_impl;
    struct sub_suite *next;
};

  sub_suite对应于对一个模块测试的的测试用例集合,他包含测试的一些统计信息,方便以后生成测试报告。

struct abts_suite {
    sub_suite *head;
    sub_suite *tail;
};

  这算是所有sub_suite的根了,我们是在它的基础上构建sub_suite链表的。根据它我们可以找到我们最关心的两个suite。head指向第一个suite,可以方便我们定位整个链表、tail指向最后一个suite,其实定位的是我们当前正在测试的suite。

struct abts_case {
    int failed;
    sub_suite *suite;
};

  表示一个测试用例,它不会保存在链表中。被断言集使用,记录断言是否失败。

  令人惊叹的是,你在使用这个框架是我们几乎不用关心这3个数据结构,只需要机械的使用ADD_SUITE和abts_run_test 就好了。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号