測試驅動開發筆記(二)—xUnit
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. } |