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