发表于: 2017-07-01 21:54:19

1 1305


今天完成的事情:

1. 完成了乘除减的测试类

2. 了解junit注释

3.了解junit断言



明天计划的事情:

1. 继续学习junit

2.学习Spring


遇到的问题:

1.int var1 = 1;

   assertTrue(var1);//错误

 括号内必须为boolean类型,不能为int类型

2. string obj1 = "";

    assertNotNull(obj1);//错误

 java中空字符串和0不等于null


收获:

1.乘除减的测试类,及其常用junit注释

package com.my.junit;

import static org.junit.Assert.*;

import org.junit.Test;

import org.junit.*;

public class CalculateTest {

    Calculate calculation;


    //@BeforeClass测试开始第一时间执行

    @BeforeClass

    public static void before() {  

        System.out.println("测试开始");  

    }  

  

    //@AfterClass所有测试完成后执行

    @AfterClass  

    public static void after() {  

         System.out.println("测试结束");  

    } 


    //@Before初始化方法,每一个测试方法(@Test)前都要运行

    @Before

     public void setUp(){

         calculation = new Calculate();

         System.out.println("开始!");

     }

     //@After每个测试方法结束后执行

     @After

     public void tearDown(){

         System.out.println("结束!");

     }


     //(timeout = 300)如果在300毫秒内不能完成测试,则失败

     @Test(timeout = 300)

     public void testSum(){

         try{

               Thread.sleep(100);//在此暂停100毫秒

          }catch(InterruptedException e){

               e.printStackTrace();

          }

         int sum = calculation.sum(2,5);

        System.out.println("@Test sum();" + sum + "=" + 7);

        assertEquals(sum,7);

    }

    @Test

     public void testSub(){

         int sub = calculation.sub(5,2);

         System.out.println("@Test sub();" + sub + "=" + 3);

         assertEquals(sub,3);

     }

     @Test

     public void testMulti(){

         int multi = calculation.multi(5, 2);

         System.out.println("@Test multi();" + multi + "=" + 10);

         assertEquals(multi,10);

     }

    @Test

    public void testDiv(){

        int div = calculation.div(0, 2);

        System.out.println("@Test div();" + div + "=" + 5);

        assertEquals(div,5);

    }

    //通过@Test元数据中的expected属性验证是否抛出期望的异常

   //如果有异常则测试通过,没有则不通过

   //例如: 如果除数为0则通过测试。

   @Test(expected = ArithmeticException.class)

    public void testDivException(){

        int div = calculation.div(10, 0);

        System.out.println("@Test div();" + div + "=" + 5);

        assertEquals(div,5);

    }

    //该元数据标记的测试方法在测试中会被忽略。同时可以为该标签传递一个String的参数

   @Ignore("sqrt() Not yet implemented")

   @Test

   public void testSqrt(){

   }

   //如果在300毫秒内不能完成测试,则失败

   @Test(timeout=300)

   public void testFor1(){

        calculation.for1(4);

   }

 }


结果:




2. junit的常用断言


package com.my.junit;

import static org.junit.Assert.*;

import org.junit.Test;

public class AssertionsTest {

    @Test

    public void test(){

        String obj1 = "junit";

        String obj2 = "junit";

        String obj3 = "test";

        String obj4 = "test";

        String obj5 = null;

        int var1 = 1;

        int var2 = 1;

        int[] arithmetic1 = {1, 2, 3};

        int[] arithmetic2 = {1, 2, 3};

        //断言两个值是否相等

        assertEquals(obj1,obj2);

        //两个对象的引用相同对象

        assertSame(obj4,obj3);

        //两个对象不是引用同一个对象

        assertNotSame(obj2,obj4);

        //对象不为空

        assertNotNull(obj1);

        //对象为空

        assertNull(obj5);

        //条件为真, 括号里必须为boolean类型

       assertTrue(var1 == var2);

        //预期数组和结果数组相等

        assertArrayEquals(arithmetic1, arithmetic2);

   }

}


结果:




参考资料:

Java中null 与0 的详细区别

JUnit断言

JUnit注解

junit学习之junit的基本介绍



PS:下次试一试测试复杂一点的类





返回列表 返回列表
评论

    分享到