上一周我给项目组做了单元测试的培训,一直觉得有点不是很顺手。因为,一般来讲,如果想要向大家宣扬单元测试的思想,向项目组推广单元测试,那么,自己也应该对单元测试很精通,至少平时应该坚持TDD吧。前一段时间确实做得不是很好。因为,自己也已经很少做单元测试了,这次,为了教育的目的,居然也找不到一些自己写得比较好的单元测试的例子。
今天晚上写BUG导入的XLS方式:通过解析XLS文件,将BUG导入到数据库中。当然,XLS文件需要满足一定的规则,因此,在导入之前,需要先对XLS文件做解析。主要工具是:jexcel。
对jexcel工具的不熟悉,以及之前做的单元测试培训。我在今天的开发过程中,采用的就是TDD的方法。编写单元测试,测试各种情况下是不是会出错,一步一步,小步的迭代,运行,看到Green Bar。重构,再继续运行测试,看到的还是Green Bar。感觉很好,重构了之后,代码比以前简洁了很多,并且对性能也有很大的提高。缓存了Label和Column的对应关系,避免了重复的方法调用。
编写代码370行,测试代码130行。还没有达到1:1的比例,还有很大的提升空间。
另外,对private做单元测试的话,需要使用反射方法。我想肯定也有其它的方式,这里就采用最简单的方式就可以了:)
今天晚上写BUG导入的XLS方式:通过解析XLS文件,将BUG导入到数据库中。当然,XLS文件需要满足一定的规则,因此,在导入之前,需要先对XLS文件做解析。主要工具是:jexcel。
对jexcel工具的不熟悉,以及之前做的单元测试培训。我在今天的开发过程中,采用的就是TDD的方法。编写单元测试,测试各种情况下是不是会出错,一步一步,小步的迭代,运行,看到Green Bar。重构,再继续运行测试,看到的还是Green Bar。感觉很好,重构了之后,代码比以前简洁了很多,并且对性能也有很大的提高。缓存了Label和Column的对应关系,避免了重复的方法调用。
编写代码370行,测试代码130行。还没有达到1:1的比例,还有很大的提升空间。
另外,对private做单元测试的话,需要使用反射方法。我想肯定也有其它的方式,这里就采用最简单的方式就可以了:)
java 代码
- public void testGetRow() throws Exception {
- File file = getFile("cn/ac/iscas/share/bug/bug.xls");
- XSLFileImporter importer = new XSLFileImporter(0, file);
- Method m = XSLFileImporter.class.getDeclaredMethod("getRow",
- new Class[]{Sheet.class,String.class,int.class});
- m.setAccessible(true); //设置方法的可访问性为true就可以了
- Object row = m.invoke(importer, new Object[]{
- importer.getWorkBook().getSheet(0),
- Constants.TITLE,
- Constants.MUST
- });
- assertEquals(1, row);
- };