实践作业2
https://github.com/Martin-LAU01/test/blob/master/%E5%AE%9E%E8%B7%B5%E4%BD%9C%E4%B8%9A2
新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。
| package junit4; | |
| import static org.junit.Assert.*; | |
| import org.junit.Test; | |
| import org.junit.After; | |
| import org.junit.Before; | |
| import org.junit.Ignore; | |
| import org.junit.Test; | |
| //import org.junit.internal.runners.calculator; | |
| import org.junit.runner.RunWith; | |
| //@RunWith(calculator.class) | |
| public class calculatorTest { | |
| private static calculator calculator=new calculator(); | |
| @Before | |
| public void setUp() throws Exception { | |
| calculator.clear(); | |
| } | |
| @After | |
| public void tearDown() throws Exception { | |
| } | |
| @Test(timeout=1000) | |
| public void testAdd() { | |
| calculator.add(2); | |
| calculator.add(3); | |
| assertEquals(5, calculator.getResult()); | |
| } | |
| @Test | |
| public void testSubstract() { | |
| calculator.add(10); | |
| calculator.substract(2); | |
| assertEquals(8,calculator.getResult()); | |
| } | |
| @Ignore("Multiply() Not yet implemented") | |
| @Test | |
| public void testMultiply() { | |
| } | |
| @Test(expected =ArithmeticException.class) | |
| public void testDivide() { | |
| calculator.add(8); | |
| calculator.divide(0); | |
| assertEquals(4,calculator.getResult()); | |
| } | |
| } |
第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”
在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮 然后在新弹出的对话框中选择JUnit4并点击确定
第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”。点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。
之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:
| package junit4; | |
| public class calculator { | |
| private static int result; //静态变量,用于存储运行结果 | |
| public void add(int n) | |
| { | |
| result=result+n; | |
| } | |
| public void substract(int n) | |
| { | |
| result=result-1; //Bug:正确的应该是result=result-n; | |
| } | |
| public void multiply(int n) | |
| { | |
| //此方法尚未写好 | |
| } | |
| public void divide(int n) | |
| { | |
| result=result/n; | |
| } | |
| public void square(int n) | |
| { | |
| result=n*n; | |
| } | |
| public void squareRoot(int n) | |
| { | |
| for(;;); //Bug:死循环 | |
| } | |
| public void clear() | |
| { | |
| result=0; //将结果清零 | |
| } | |
| public int getResult() | |
| { | |
| return result; | |
| } | |
| } |
第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试

浙公网安备 33010602011771号