一个通用的单元测试框架的思考和设计02-设计篇

发表于:2011-8-03 10:59

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

 作者:CrazyCoder2010    来源:51Testing软件测试网采编

分享:

  5. 详细设计-类图

  解释:整个框架最核心的类和接口只有三个IunitRunner,这个是运行的切入点,用来注册每个测试类指定的listener(通过寻找测试中上的@IUnitTestExecuteListeners标注),所有的功能扩展都是围绕IUnitTestExecuteListener展开,如类图中描述的GuiceStrapupListener用来启动guice容器,DataProviderListener用来加载测试准备数据

  6. 千呼万唤始出来-最终的测试用例长什么样子

  对于最终使用框架的开发者而言,根据自身需要通过注解来动态加载所需要的listener即可(可以指定多个),注意测试用例上要加个@RunWith标注,指定要执行的runner为IunitRunner这样junit框架才能用我们提供的runner来运行,实际使用的时候这些东东可以都放到一个测试父类中去完成,开发者只需要关注自身用到的listener即可

  viewplaincopytoclipboardprint?
  packagecom.crazycoder2010.iunit;
  importstaticorg.hamcrest.MatcherAssert.assertThat;
  importstaticorg.hamcrest.Matchers.equalTo;
  importorg.junit.Test;
  importorg.junit.runner.RunWith;
  importcom.crazycoder2010.iunit.annotation.IUnitDataSet;
  importcom.crazycoder2010.iunit.annotation.IUnitTestExecuteListeners;
  @IUnitDataSet(dbunitFile="AppTest.xml")
  @RunWith(IUnitRunner.class)
  @IUnitTestExecuteListeners({TransactionalListener.class,DatasetProviderListener.class})
  publicclassAppTestextendsAbstractIUnitTestCase{
  @Test
  publicvoidtestHello(){
  assertThat("hello",equalTo("hello"));
  }
  }

相关链接:

一个通用的单元测试框架的思考和设计01-思考篇

22/2<12
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号