1. 防止改完后引起新错误;再次运行单元测试。
2.. 如果单元测试涉及到可变信息(如当前时间),需要将待测试数据也变为可变,否则无法回归测试
3. 使用测试驱动开发必须从头开始,严格进行,否则到半中间会很费事的。
4. 测试驱动开发中,私有方法也要测试,可通过反射实现,如
Summer example = new Summer.newInstance(); Method m = example.getClass().getDeclaredMethod("methodone",new Class[]{String.class}); m.setAccessible(true);Object result = m.invoke(example ,new Object[] {“xxx”}); m.setAccessible(false); if (result.equals(rightResult)){ |
5.重构和修改,一次只带一顶帽子,要掌握自己的pace,不太快也不太慢
6. 常用断言:相等,真,空,同一对象
7. Junit与ant结合,运行全部测试并将运行结果以文件形式输出
JUnit中测试的组织
import junit.framework.TestCase; public class CalculateUtilTest extends TestCase { public CalculateUtilTest(String name) //1行 { super(name); } } 1. import junit.framework.*; 2. public class MainTest 3. { 4. public static Test suite() //1行 5. { 6. TestSuite suite = new TestSuite(); //2行 7. 8. //添加测试testDivision方法 9. suite.addTest(new CalculateUtilTest("testDivision")); //3行 10. //添加测试类 suite.addTestSuite(CalculateUtil.class); return suite; 14. } 15. 16. public static void main(String[] args) 17. { 18. //执行测试 19. junit.textui.TestRunner.run(suite()); //4行 20. } 21. } |
最新内容请见作者的GitHub页:http://qaseven.github.io/