基于Spring的接口自动化
2019-06-27 本文已影响0人
Loistein
Junit源码之Statement
- Statement链,职责链模式,自己处理自己的,将其他逻辑交给下一个statement处理
- 逻辑实现:@BeforeClass、@AfterClass、@Before、@After、@ClassRule、@Rule
- Statement是所有类的父类,它只定义了一个抽象的evaluate()方法
- RunBefores,注解修饰的方法必须是静态的,@BeforeClass注解的方法抽象成一个Statement叫RunBefores,而测试类中其他要运行的测试方法的运行过程是另一个Statement叫next,在RunBefores中调用完所有这些方法,而将其他逻辑交给next
sfTestDataSet
- 新建runAfterCLass, runAfterMethod, runBeforeCLass, runBeforeMethod继承statements,重写evaluate方法
- SfiTestJunit4ClassRunner<T> extends BlockJUnit4ClassRunner
SfiTestJunit4ClassRunner<T> extends BlockJUnit4ClassRunner
withBeforeClasses
withAfterClasses
createTest
withBefores
withAfters
runChild
methodBlock
withRules
methodInvoker
shouldRun
checkNeedFilter
- 使用SfiTestJunit4ClassRunner
@RunWith(SfiTestJunit4ClassRunner.class)
@TestListeners( {
SfiTestSpringContextListener.class,
SfiTestSpringInjectionListener.class,
SfiTestSpringBeanListener.class,
SfiTestDataSetBeforeListener.class,
SfiTestDataSetListener.class,
SfiTestDataProviderListener.class})