首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

用Rules回控制JUnit的执行

2012-12-17 
用Rules来控制JUnit的执行本文主要依据以下几篇介绍及个人理解所整理,转载请注明,发现错误请指出,谢谢。JUn

用Rules来控制JUnit的执行

本文主要依据以下几篇介绍及个人理解所整理,转载请注明,发现错误请指出,谢谢。

JUnit Rules: http://wiki.alfresco.com/wiki/JUnit_Rules

Using Rules to Influence JUnit Test Execution:http://cwd.dhemery.com/2010/12/junit-rules/


JUnit Rule目的

JUnit Rules是最新加入到JUnit库中的,是setUp()tearDown()方法及最新的@Before、@After标记的演化产品。它能够实现@Before、@After标记所能实现的所有功能,并且还有所扩展。总结起来,Rules主要用以以下目的:

    在运行测试之前,能够得到测试名以做一些需要的处理指导Swing来运行测试对测试失败的case加入额外信息作为参考,尤其对于selenium有作用,如抓屏

认识JUnit Rule

JUnit Rule主要包含三要素,运行测试的语句、选择需要运行哪些语句的规则以及@Rule标记。

在加入了@Rule后JUnit按如下流程运行测试:

    创建默认语句运行测试找出测试类中所有的标记了@Rule的public的成员规则调用Rule中的apply()方法并告诉该方法所要运行的测试类和测试方法以及JUnit所收集到的语句。apply()方法决定怎么来运行测试,选择或者创建语句来运行测试并返回相应的语句传给JUnit。然后JUnit把语句传给下一个rule的apply方法,如此循环直到最后一条规则。调用最后一条Rule返回的语句的evaluate()来运行测试

如何写JUnit Rule

JUnit比较之前的版本用的主要是MethodRule,后面改用TestRule,下面以实际例子来展现如何撰写TestRule并加入到Test类中。

public class Math {public int abs(int a){if(a >= 0)return a;else return -a;}public int div(int a,int b){return a/b;}public float exp(int a,int b){float r = 1;for(int i = 0;i < b;i ++)r *= a;return r;}}



热点排行