junit4学习探讨

初学junit, 现总结一下自己对junit使用.

 

1.使用@Test

在方法上输入@Test , 然后使用ctrl+1,引入org.junit.Test(junit4.5.jar包)

 

@Test
public void testConn() throws SQLException{
//method
}

 

 然后再outline视图下, 在testConn()方法上 右键run -> junit test, 即可运行,自动打开JUnit 视图.

如下图:


junit4学习探讨
 绿色,表示,测试通过. 若出现红色,表示有错误,在下方的Failure trace下,查看错误信息,进行调试.

注意:(1)当使用@Test时, 方法必须为public ,void 

 

2. 继承TestCase使用

今天TL让写一个功能单元测试,我说只会使用@Test,不知怎么写. 直接遭到TL鄙视.赶快回去查了junit的一些资料学习.

2.1 只要测试类 继承junit.framework.TestCase.

然后写个以test开头的方法名称. 如testMethodName(){}. 然后即可右键run as=> junit Test. 

 

public class UploadPlatformMessageTest extends TestCase {
{
     public void testTransormAndUpload(){
          //method
     }
}

2.2 在类中添加main方法:

 

	public static void main(String[] args) {
		TestRunner.run( YOURCALSSNAME.class);
	}

 

 这样直接 run as, -> java application , 也运行程序中所有以test开头的方法.

 

 

3. 当类继承TestCase时, 若定义多个test*()方法 ,右键运行run junit Test, 运行的是哪个testcase?

尝试写连个test*()方法, run as ->junit test, 发现 两个方法都执行.

3.1 怎么运行其中的一个test*方法?

解决:(1) 通过运行main()方法来设置运行哪个test方法:

TestSuite ts = new new TestSuite();

 

ts.addTest(new UploadPlatformMessageTest("testAsbc"));

TestRunner.run(test);

 

 

 

 

4. ? ? ? 使用@Test方法时, 此方法必需为public void , 对于有返回值的方法无法使用@Test, 有没有其它替代的解决方案?

使用assertEquals( Object ,  Object);

e.g.:

 

	public int abc(int i){
		return i;
	}

       @Test
	public void testAbc(){
  	        assertEquals(2, abc(2));
	}

 不知我的理解是否正确? 

 

 

5. assert()使用

:个人感觉就是,为了测试含有返回值的方法, 见 4

 

6.

TestCase: abstract 类 ,实现了 junit.framework.Test接口,  junit.framework.TestCase

TestSuite: 类, 实现Test接口.

Test: 接口, org.junit.Test

@Test 注解:  org.junit.Test  注解类型:  public abstract @interface org.junit.Test extends java.lang.annotation.Annotation {..}

7.jnuit bug

测试时, 什么异常都不报.

 

8 问题总结:

 ? ? ?

junit的使用 有@Test 和 继承TestCase 两种办法. @Test是Junit的 新的特性 ,使用容易 . 而继承TestCase方法是以前使用方法? 

 

 

 

你可能感兴趣的:(DAO,spring,框架,JUnit,单元测试)