在平常的开发中,离不开单元测试,并且在学习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()); } } }
很是欢迎大伙留言分享本身的经历!