junit框架——单元测试
Posted 跳动de手指
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了junit框架——单元测试相关的知识,希望对你有一定的参考价值。
对于一名测试工程师来说如果不能进行单元测试、接口测试,是非常遗憾的;因为功能测试只能占到测试收益的5%,强化代码能力对于目前的我们来说至关重要,我认为一名测试工程师至少要是一个中级以上的开发工程师,当然我也在努力朝着这个方向迈进,我们共勉;
第一步:安装eclipse,百度搜索官网直接下载最新版本,此软件为免费开源;
第二步:创建包cn.junit4创建一个Calculator类,代码如下:
package cn.junit4; public class Calculator { public int result; public int add(int operand1,int operand2){ result=operand1+operand2; return result; } public int subtract(int operand1,int operand2){ return result=operand1-operand2; } public int multiple(int operand1,int operand2){ return result=operand1*operand2; } public int divide(int operand1,int operand2){ return result=operand1/0; } public int getResult(){ return this.result; } }
第三步:创建junit test case,代码如下:
package cn.junit4; import static org.junit.Assert.*; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; public class CalculatorTest { private static Calculator Cal= new Calculator(); @BeforeClass public static void setUpBeforeClass() throws Exception { System.out.println("@BeforeClass"); } @AfterClass public static void tearDownAfterClass() throws Exception { System.out.println("@AfterClass"); } @Before public void setUp() throws Exception { System.out.println("测试开始"); } @After public void tearDown() throws Exception { System.out.println("测试结束"); } @Test public void testAdd() { Cal.add(2,2); assertEquals(4, Cal.getResult()); //fail("Not yet implemented"); } @Test public void testSubstract(){ Cal.subtract(4,2); assertEquals(2,Cal.getResult()); } @Ignore public void testMultiply(){ fail("Not yet implemented"); } @Test(timeout=2000) public void testDivide(){ for(;;); } @Test(expected=ArithmeticException.class) public void testDivideByZero(){ Cal.divide(4,0); } }
第四步:在同一个包下创建另一个类Calculatortest2,代码如下:
package cn.junit4; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class CalculatorTest2 { @BeforeClass public static void setUpBeforeClass() throws Exception { System.out.println("beforeclass类之前运行"); } @AfterClass public static void tearDownAfterClass() throws Exception { System.out.println("Afterclass类运行结束"); } @Before public void setUp() throws Exception { System.out.println("@before"); } @After public void tearDown() throws Exception { System.out.println("@After"); } @Test public void test() { //fail("Not yet implemented"); System.out.println("CalculatorTest2测试方法被调用"); } }
第五步:创建junit4 test suite代码如下:
package cn.junit4; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({ CalculatorTest.class, CalculatorTest2.class }) public class AllTests { }
第六步:运行junit4 test suite 完成Calculator类中方法的调用与预期一致 timeout=2000 为执行时间不得超过2秒而此方法中为死循环所以执行失败,excepected=ArithmeticException.class表示此方法执行后必须抛出ArithmeticException异常错误,用于验证是否抛出异常错误;AssertEquals()方法断言实际计算结果与预期结果是否一致;@ignore 标示的方法占时不执行;junit4 test suite主要用于让测试工程师实现并发批量执行测试用例;
以上是关于junit框架——单元测试的主要内容,如果未能解决你的问题,请参考以下文章