最近接触了下单元测试,顺手记录下自己的学习过程
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我们的测试类,测试成功