logo资料库

简易计算器做单元测试.docx

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
简易计算器做单元测试
JUnit4
基本测试
测试异常
简易计算器做单元测试 JUnit4 JUnit4 通过注解的方式来识别测试方法。目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且是第一个运行 @Before 在测试方法运行之前运行 @Test 测试方法 @After 在测试方法运行之后允许 @AfterClass 全局只会执行一次,而且是最后一个运行 @Ignore 忽略此方法 基本测试 新建一个项目叫 JUnitTest,编写一个 Calculator 类,这是一 个能够简单实现加减乘除、平方、开方的计算器类,然后对这些 功能进行单元测试。 package rgh; public class Calculator { private static int result; public void add(int n){ result = result+n; } public void substract(int n){ result = result-n; }
public void multiply(int n){ result = result/n; } public void square(int n){ result = n*n; } public void squareRoot(int n){ result = (int)Math.sqrt(n); } public void clear1(){ result =0; } public void reciprocal(int n){ result =1/n; } public void absolute(int n){ result= Math.abs(n); } public int getResult(){ return result; } /*这一步是以后生成,初始没有 public void clear() { // TODO Auto-generated method stub } public void add1(int n) { // TODO Auto-generated method stub } public void divide(int i) { // TODO Auto-generated method stub } */ } 2. 将 JUnit4 单元测试包引入这个项目:在该项目上点右键,点“属 性”
3. 在弹出的属性窗口中,首先在左边选择“Java Build Path”,然 后到右上选择“Libraries”标签,之后在最右边点击“Add Library…” 按钮 4. 然后在新弹出的对话框中选择 JUnit4 并点击确定,如上图所示, JUnit4 软件包就被包含进我们这个项目了 5. 生成 JUnit 测试框架:在 Eclipse 的 Package Explorer 中用右键 点击该类弹出菜单,选择“New JUnit Test Case”。 6. 之后系统会自动生成一个新类 CalculatorTest,里面包含一些空 的测试用例。你只需要将这些测试用例稍作修改即可使用。 完整的 CalculatorTest 代码如下: public class CalculatorTest { private static Calculator calculator = new Calculator(); @Before public void setUp() throws Exception {
calculator.clear(); } @Test public void testAdd() { calculator.add(3); calculator.add(4); assertEquals(7, calculator.getResult()); } @Test public void testSubstract() { calculator.add(8); calculator.substract(3); assertEquals(5, calculator.getResult()); } @Ignore ("Multiply() Not yet implemented") @Test public void testMultiply() { fail("Not yet implemented"); } @Test public void testDivide() { calculator.add(8); calculator.divide(2); assertEquals(4, calculator.getResult()); } } 运行结果如下:
进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示 “共进行了 4 个测试,其中 1 个测试被忽略,二个测试失败”。 限时测试 对于那些逻辑很复杂,循环嵌套比较深的程序,很有可能出现死循环, 因此一定要采取一些预防措施。限时测试是一个很好的解决方案。我 们给这些测试函数设定一个执行时间,超过了这个时间,他们就会被 系统强行终止,并且系统还会向你汇报该函数结束的原因是因为超 时,这样你就可以发现这些 Bug 了。要实现这一功能,只需要给@Test 标注加一个参数即可,代码如下: @Test(timeout = 1000) public void squareRoot() { calculator.squareRoot(4); assertEquals(2, calculator.getResult()); }
测试异常 JAVA 中的异常处理也是一个重点,因此你经常会编写一些需要抛出 异常的函数。那么,如果你觉得一个函数应该抛出异常,但是它没抛 出,这算不算 Bug 呢?这当然是 Bug,并 JUnit 也考虑到了这一点, 来帮助我们找到这种 Bug。例如,我们写的计算器类有除法功能,如 果除数是一个 0,那么必然要抛出“除 0 异常”。因此,我们很有必 要对这些进行测试。代码如下: @Test(expected = ArithmeticException.class) public void divideByZero(){ calculator.divide(0); } 使用@Test 标注的 expected 属性,将我们要检验的异常传递给他, 这样 JUnit 框架就能自动帮我们检测是否抛出了我们指定的异常。
结果如下:
分享到:
收藏