在平常的開發中,離不開單元測試,並且在學習Java時,特別是在測試不一樣API使用時要不停的寫main方法,顯得很繁瑣,因此這裏介紹使用Junit學習Java的方法。此外,我使用log4j將結果輸出(在項目中不這麼用,這裏僅是使用)。爲了方便大夥瞭解,我簡單總結了一下簡單測試代碼並傳到GitHub上了,後續我也會持續更新的,歡迎大夥批評指正。java
@BeforeClass會在全部方法調用以前執行,該方法是靜態的,當測試類被加載後後接着運行它,比較適合加載配置文件。git
@AfterClass標註的方法也是靜態,在全部方法以後執行,適合對資源的清理,好比釋放數據庫的釋放。github
@Before和@After在每一個測試方法先後都被執行一遍。數據庫
@Test將方法標識爲測試方法。在使用時也有以下幾種用法:apache
爲方便組織多個測試類一塊兒運行,可使用測試套件,步驟以下:app
在代碼結構、方法等相同,僅參數和預期值不一樣的狀況下,可使用Junit中的參數化設置。框架
此外,在類中使用@Test標識要測試的方法。maven
爲了使用Junit測試框架,只需在maven項目的pom文件中加入依賴便可,這裏也加入了log4j的pom文件配置,期中版本的選擇能夠根據實際狀況設置,以下:函數
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
在實際的類、方法的命名上,格式建議爲test+類名/方法名,這樣有助於理解,固然這不是必須的。單元測試
import org.apache.log4j.Logger; import org.junit.Test; import java.util.HashMap; import java.util.Map; import static org.junit.Assert.assertEquals; public class TestMap { private static final Logger logger=Logger.getLogger(TestMap.class); @Test public void testPut(){ Map<String ,Integer> map=new HashMap<>(); map.put("apple",123); map.put("banana",2345); logger.info(map.get("apple")); logger.info(map.put("apple",567)); logger.info(map.get("apple")); logger.info(map.put("water",1000)); } @Test public void testTraverse(){ Map<String,Integer> map=new HashMap<>(); map.put("a",1); map.put("b",2); map.put("c",3); assertEquals(map.get("c"),new Integer(3)); for(String key:map.keySet()){ System.out.println(map.get(key)); } for(Map.Entry<String,Integer> entry:map.entrySet()){ System.out.println(entry.getKey()+"="+entry.getValue()); } } }
很是歡迎大夥留言分享本身的經歷!