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")); } } |
相关链接: