##Junit单元测试:
*Junit使用:白盒测试
*步骤:
1.定义一个测试类(测试用例)
*建议:1.测试名:被测试的类名+ Test CaculatorTest 2.包名:XXX.XXX.XX.Test
2.定义测试方法:可以独立运行
*建议:1.方法名:test测试的方法名
2.返回值:void 3.参数列表:空参数
4.给方法加@Test(注解) 导入junit依赖(点击右边提示即可)
package cn.itcast.junit; import org.junit.Test; public class CaculatorTest { //测试add方法 @Test public void testAdd(){ //创建计算机对象 Caculator ca = new Caculator(); //调用add方法 int result = ca.add(1,2); System.out.println(result); } }
3.断言操作
package cn.itcast.junit; import junit.framework.Assert; import org.junit.Test; public class CaculatorTest { //测试add方法 @Test public void testAdd(){ //创建计算机对象 Caculator ca = new Caculator(); //调用add方法 int result = ca.add(1,-2); //System.out.println(result); //断言 //期望是3,但是result=1-2=-1,程序会报错 Assert.assertEquals(3, result); } @Test public void testSub(){ Caculator ca=new Caculator(); int result=ca.sub(3, 2); Assert.assertEquals(result,1); } }
综上所示:Junit操作的好处是,可以不用在main方法中运行,就可以独立执行。而且可以直接提示程序是否出错,可用性强。
在很多执行测试操作中,很多步骤是重复的。例如,当程序执行之前申请资源,在程序执行后释放资源。
@Before @After
package cn.itcast.junit; import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Test; public class CaculatorTest { //初始化方法。用于资源申请。所有测试方法在执行之前都会先执行该方法 @Before public void init(){ System.out.println("初始化中"); } //测试add方法 @Test public void testAdd(){ //创建计算机对象 Caculator ca = new Caculator(); //调用add方法 int result = ca.add(1,-2); //System.out.println(result); //断言 //期望是3,但是result=1-2=-1,程序会报错 Assert.assertEquals(3, result); } @Test public void testSub(){ Caculator ca=new Caculator(); int result=ca.sub(3, 2); Assert.assertEquals(result,1); } //释放资源方法。在所有方法执行之后,自动执行该方法 @After public void close(){ System.out.println("资源关闭。。。"); } }