单元测试笔记

最近接触了下单元测试,顺手记录下自己的学习过程

Anroid Studio我们创建项目的时候自带Junit框架的单元测试,其依赖包为:

首先新建项目,然后新建测试类DateUtil


DataUtil里面添加两个测试方法:

public class DateUtil {
    /**
     * 英文全称  如:2017-11-01 22:11:00
     */
    public static String FORMAT_YMDHMS = "yyyy-MM-dd HH:mm:ss";

    /**
     * 掉此方法输入所要转换的时间输入例如("2017-11-01 22:11:00")返回时间戳
     *
     * @param time
     * @return 时间戳
     */
    public static long dateToStamp(String time) throws ParseException {
        SimpleDateFormat sdr = new SimpleDateFormat(FORMAT_YMDHMS, Locale.CHINA);
        Date date = sdr.parse(time);
        return date.getTime();
    }

    /**
     * 将时间戳转换为时间
     */
    public static String stampToDate(long lt){
        String res;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FORMAT_YMDHMS, Locale.CHINA);
        Date date = new Date(lt);
        res = simpleDateFormat.format(date);
        return res;
    }
}

然后快捷键CTRL+SHIFT+T或者类空白处右键GO TO---Test


然后Creat new Test新建这个类的测试类,勾选上我们需要测试的方法,然后选择测试类存放的目录点击OK就成功创建了测试类:




此时就会在src/test/java目录下生成测试类:


我们打开生产的测试类就会发现生成了两个我们选择的测试方法

public class DateUtilTest {
    @Test
    public void dateToStamp() throws Exception {
    }

    @Test
    public void stampToDate() throws Exception {
    }

}

在这这里就要说一下Junit测试方法中的注解了:

                       注解名                                                                                       含义
@Test表示此方法为测试方法
@Before在每个测试方法前执行,可做初始化操作
@After在每个测试方法后执行,可做释放资源操作
@Ignore忽略的测试方法
@BeforeClass在类中所有方法前运行。此注解修饰的方法必须是static void
@AfterClass在类中最后运行。此注解修饰的方法必须是static void
@RunWith指定该测试类使用某个运行器
@Parameters指定测试类的测试数据集合
@Rule重新制定测试类中方法的行为
@FixMethodOrder指定测试类中方法的执行顺序

这些方法执行的顺序是:@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

然后我们补全我们的测试方法,在@Before注解的方法里初始化我们的测试数据:

public class DateUtilTest {

    private String time = "2017-10-15  16:00:02";
    private long timeStamp = 1508054402000L;
    private Date mDate;


    @Before
    public void setUp() throws Exception {
        System.out.println("测试开始");
        mDate = new Date();
        mDate.setTime(timeStamp);
    }

    @After
    public void tearDown() throws Exception {
        System.out.println("测试结束");
    }

    @Test
    public void dateToStamp() throws Exception {
        assertNotEquals(4, DateUtil.dateToStamp(time));//测试结果不等于4 则测试通过
    }

    @Test
    public void stampToDate() throws Exception {
        assertEquals("2017-10-15 16:00:02", DateUtil.stampToDate(timeStamp));//测试结果等于2017-10-15 16:00:02则测试通过
    }

}

右键Run我们的测试类,测试成功


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页