@Parameters:用于JUnit的参数化功能,用来标记准备数据的方法。
注意:该方法需要满足一定的要求:
(1)该方法必须为public static的
(2)该方法返回值必须为java.util.Collection类型
(3)该方法的名字不做要求
(4)该方法没有参数

 

在实际项目中,随着项目进度的开展,单元测试类会越来越多,可是直到现在我们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的。为了解决这个问题,JUnit 提供了一种批量运行测试类的方法,叫做测试套件(TestSuite)。这样,每次需要验证系统功能正确性时,只执行一个或几个测试套件便可以了。
一种是类似Junit3的方法:

Junit3中是直接testSuite.addTest(Test1.class),Junit4中需要用JUnit4TestAdapter来转换一下。TestSuite中也可以添加TestSuite,方法是一样的,即testSuite.addTest(new JUnit4TestAdapter(TestDemo01.class));

另一种是使用标注的方法:
创建一个空类作为测试套件的入口。 使用注解 org.junit.runner.RunWith 和 org.junit.runners.Suite.SuiteClasses 修饰这个空类。将 org.junit.runners.Suite 作为参数传入注解 RunWith,以提示 JUnit 为此类使用套件运行器执行。
将需要放入此测试套件的测试类组成数组作为注解 SuiteClasses 的参数。 保证这个空类使用 public 修饰,而且存在公开的不带有任何参数的构造函数。

 

1、assertTrue/False([String message,]boolean condition);
用来查看变量是是否为false或true,如果assertFalse()查看的变量的值是false则测试成功,如果是true则失败,assertTrue()与之相反;

2、fail([String message,]);
直接用来抛出错误。

3、assertEquals([String message,]Object expected,Object actual);
判断是否相等,可以指定输出错误信息。
第一个参数是期望值,第二个参数是实际的值。
这个方法对各个变量有多种实现

4、assertNotNull/Null([String message,]Object obj);
判读一个对象是否非空(非空)。

5、assertSame/NotSame([String message,]Object expected,Object actual);
判断两个对象是否指向同一个对象。看内存地址。

6、failNotSame/failNotEquals(String message, Object expected, Object actual)
当不指向同一个内存地址或者不相等的时候,输出错误信息。
注意信息是必须的,而且这个输出是格式化过的。

1.@Before:
表示该方法在每个测试方法执行前执行一次,可用于一些初始工作。
 
2.@BeforeClass:
该方法在所有测试方法运行前运行,且只运行一次,添加该注释的方法必须修饰为 public static void 且没有参数。
 
3.@Test : 表示测试方法。
        注意:    
              1.测试方法必须使用注解 org.junit.Test 修饰。
                2.测试方法必须使用 public void 修饰,而且不能带有任何参数。
该方法有两个属性:
  a: expected :该属性表示测试方法必须抛出一个异常,且异常的类型必须是该属性要求的类型,否则表示测试方法失败。也叫做异常测试。
  例如:@Test(expected=IndexOutOfBoundsException.class)
  b:timeout 用于超时测试,表示该测试方法的执行时间如果超过了要求的时间则失败 单位为毫秒
  例如:@Test(timeout=100)
 
4.@Ignore :
表示会被忽略的测试方法
 
5.@After :
被注释的方法会在每个测试方法执行完成之后执行一次,如果其它的方法抛出了异常,该方法同样会被执行。主要用于释放在@Before方法中初始化的资源。
 
6.@AfterClass:
功能同@After ,只不过是该方法释放的是@BeforeClass方法初始化的资源。且在所有的测试方法执行完成之后,只执行一次。
 
7.@Runwith:
测试运行器,放在测试类名之前,用来确定测试类怎么运行的,当不指定这个注解时,使用默认Runner来运行测试代码,即@RunWith(JUnit4.class)。常见的运行器有:
(1)@RunWith(Parameterized.class):参数化运行器,配合@Parameters使用JUnit的参数化功能。
(2)@RunWith(Suite.class)
 @SuiteClasses({ATest.class,BTest.class,CTest.class})
测试集运行器配合使用测试集功能。   
(3)@RunWith(JUnit4.class):JUnit 4的默认运行器
(4)@RunWith(JUnit38ClassRunner.class):用于兼容junit3.8的运行器

8.@Parameters:
用于JUnit的参数化功能,用来标记准备数据的方法。
 
一个JUnit 4 的单元测试用例执行顺序为:
@BeforeClass –> @Before –> @Test  –> @After  –> @AfterClass