进入myeclipse,随便创建一个项目:如图
右击SuanShu.java,选择new》Junit text cast(如果在new中找不到,就直接new》other中搜索),跳出如下框:
点击finish(我这里的finish是黑色,原因是我之前就建好了)。
在生成的SuanShuTest测试类中写入:
package cn.itcast.jisuan;
import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.Test;
public class SuanShuTest {
@Test
public void test() {
SuanShu suanshu= new SuanShu();
Assert.assertEquals(2, suanshu.add(1, 1));
}
}
在SuanShu类的代码为:
package cn.itcast.jisuan;
public class SuanShu {
public int add(int a,int b){
int c =a+b;
return c;
}
}
在“Assert.assertEquals(2, suanshu.add(1, 1));”这段代码的意思就是判定结果,判定输出值和期望值是否一致,如果一致,就表明代码没有问题,如果不一致,就说明代码有问题或者代码的逻辑结构不是我们所需要的。在这里“2”表示的是期望值,”suanshu.add(1, 1)“则是输出值。
如果不用判断结果,可以直接输出:
package cn.itcast.jisuan;
import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.Test;
public class SuanShuTest {
@Test
public void test() {
SuanShu suanshu= new SuanShu();
//Assert.assertEquals(2, suanshu.add(1, 1));
System.out.print(suanshu.add(1, 1));
}
}
测试:右击SuanShuTest ,选择Run Ass>>Junit Text就可进行单元测试。
图下图:
解析如上图所示。
在我们进行测试的时候,有时测试代码重复性过高,在测试的时候过于繁琐,比如多次请求输入输出流以及释放资源。这时候,junit提供两个注解来帮我们处理这些繁琐的代码,分别是@before和@after。@before是在单元测试之前先执行的代码块;@after是在单元测试之后执行的代码,主要用于资源的释放,而且在@Text单元测试代码块出错的时候,@after注解的代码块也会执行。
package cn.itcast.jisuan;
import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class SuanShuTest {
@Before
public void init(){
System.out.println("init...");
}
/**
* 释放资源方法:
* 在所有测试方法执行完后,都会自动执行该方法
*/
@After
public void close(){
System.out.println("close...");
}
@Test
public void test() {
SuanShu suanshu= new SuanShu();
System.out.print(suanshu.add(1, 1));
Assert.assertEquals(3, suanshu.add(1, 1));
}
}
通过学习Junit代码测试模块,我们可以省去测试带来的麻烦,使我们的更加高效的编写代码以及测试代码。