[java]junit4

Junit4,与3.x有所区别
1. 测试类不需要extends TestCase,代之以annotation,即测试类(不需要extends TestCase)的方法只要有@Test就可以了
2. 测试方法命名不需要一定要以test开头

package  junit;

public   class  Unit  {
    
private int data;
    
    
public Unit(int data){
        
this.data = data;
    }

    
public boolean test(){
        
return true;
    }

    
    
public boolean equals(Object o){
        
if(o instanceof Unit){
            
return ((Unit)o).data == data;            
        }

        
        
return false;
    }

    
    
public void exception(){
        
if (this.data==0)
            
throw new IndexOutOfBoundsException("exception in Unit");
    }

}


可以用eclipse自动生成测试类,选中要测试的类,然后new -junit test case

测试类:
package  junit;

import  org.junit. * ;

public   class  UnitTest  {

    
private Unit unit1 = new Unit(1);
    
private Unit unit2 = new Unit(2);    
    
    @BeforeClass
    
public static void setUpBeforeClass() throws Exception {
        System.out.println(
"setUpBeforeClass");
    }


    @AfterClass
    
public static void tearDownAfterClass() throws Exception {
        System.out.println(
"tearDownAfterClass");
    }


    @Before
    
public void setUp() throws Exception {
        System.out.println(
"setUp");
    }


    @After
    
public void tearDown() throws Exception {
        System.out.println(
"tearDown");
    }


    @Test
    
public void notestTest() {    // 方法名不以test开头
        
//fail("Not yet implemented");
        Assert.assertTrue(unit1.test());
    }


    @Test
    
public void testEqualsObject() {
        
//fail("Not yet implemented");
        Assert.assertEquals(unit1, new Unit(1));
        Assert.assertEquals(unit1, unit2);
    }


    @Test(expected 
= IndexOutOfBoundsException.class)
    
public void testException() {
        
//fail("Not yet implemented");
        new Unit(0).exception();
    }

}


测试结果如下


为了进行TestSuit,再增加一个testcase
package  junit;

public   class  Unit2  {
    
public boolean test(){
        
return true;
    }

}


package  junit;


import  org.junit.Test;

public   class  Unit2Test  {

    @Test
    
public void testTest() {
        
//fail("Not yet implemented");
        org.junit.Assert.assertTrue(new Unit2().test());
    }


}


==================================================================================
增加一个TestSuit(使用ecilpse的new -junit Test Suit只能找到3.x风格的extends TestCase的测试类,不知为何)
package  junit;

import  org.junit.runner.RunWith;
import  org.junit.runners.Suite;
import  org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.
class )
@SuiteClasses( 
{ UnitTest.class, Unit2Test.class } )
public   class  Suit  {
}


TestSuit测试结果


以下是控制台输出信息,跟测试类的各种annotation有关


=====================================================================================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值