JUnit4 Quick Start
来源:互联网 发布:网贷大数据花了怎么办 编辑:程序博客网 时间:2024/04/29 09:43
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
开发者编写一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。
通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
JUnit的主要用途即是单元测试
使用eclipse自动生成JUnit4的测试代码:
public class Math {public Math(){System.out.println("init");}public int add(int a,int b){return a+b;}}
右键需要测试的java类 -> New -> JUnit Test Case:
会弹出下面的选择框,注意要选择New JUnit 4 test,即JUnit4:
测试类的存放路径(Source folder)为:Test/src
测试类的存放包为(Package):com
第二个红框中的method stub需要特别说明一下:
setUpBeforClass:生成@BeforeClass注解方法
setUp:生成@Before注解方法
tearDownAfterClass:生成@AfterClass注解方法
tearDown:生成@After注解方法
先将这4个方法都选中,点击Next,可以选择需要生成测试代码的方法,包含当前类和父类的所有方法:
然后选择Finish,在指定的位置会自动生成测试类:
测试类的名称为:被测试类名称+Test
生成的类内容如下,测试方法的名称为:test+被测试方法名
import static org.junit.Assert.*;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;public class MathTest {@BeforeClasspublic static void setUpBeforeClass() throws Exception {}@AfterClasspublic static void tearDownAfterClass() throws Exception {}@Beforepublic void setUp() throws Exception {}@Afterpublic void tearDown() throws Exception {}@Testpublic void testAdd() {fail("Not yet implemented");}}
特别需要注意的地方:
1,org.junit.Assert.*为静态引入,使用其中包含的静态方法时,不需要加上相应的类名,方便了不少
2,生成的测试方法默认为测试失败,需手动修改测试内容,需要注意的是,@BeforeClass标签和@AfterClass标签标注的方法必须由public static修饰,@Before标签、@After标签和@Test标签标注的方法必须由public修饰并且不能由static修饰
public class MathTest {private Math math = new Math();@BeforeClasspublic static void setUpBeforeClass() throws Exception {System.out.println("BeforeClass");}@AfterClasspublic static void tearDownAfterClass() throws Exception {System.out.println("AfterClass");}@Beforepublic void setUp() throws Exception {System.out.println("Before");}@Afterpublic void tearDown() throws Exception {System.out.println("After");}@Testpublic void testAdd() {System.out.println("test1");assertEquals(5,math.add(2, 3));}@Testpublic void testAdd1() {System.out.println("test2");assertTrue(math.add(1, 1) == 2);}}
选中测试类,右键 -> Run As -> JUnit Test
测试结果为:
BeforeClassinitBeforetest1AfterinitBeforetest2AfterAfterClass
通过测试结果可以很清楚的看到注解方法的执行顺序为:@BeforeClass > 测试类初始化 > @Before > @After > @AfterClass
每个测试方法运行之前都会执行@Before注解方法,运行之后都会执行@After注解方法
@BeforeClass只在测试类运行前执行,@AfterClass只在测试类执行结束后执行
运行结果输出了2个init,这是因为对每个@Test注解的方法,Junit都会创建一个新的实例进行调用
- JUnit4 Quick Start
- Quick Start
- Quick Start
- WAP Push Quick Start
- Purify Quick Start
- [Avalon] Quick Start
- CodeSmith Quick Start Guide
- JavaMail quick start
- Ibatisnet Quick Start
- Ibatisnet Quick Start
- KGDB Quick Start
- dom4j Quick start
- Resin Installation Quick Start
- iBatisnet Quick Start(转)
- OpenLDAP Quick Start Guide
- squid quick start
- DOJO Quick Start
- HII Tools Quick Start
- xen网络前端驱动代码分析(设备初始化篇)
- android中The connection to adb is down,问题和解决
- 日期动态合并行(rowspan)
- java数组见解
- [Oracle] Data Pump 详细使用教程(4)- network_link
- JUnit4 Quick Start
- 月末
- 光栅图像
- 2013 Multi-University Training Contest 3
- IOS_FlyWeight享元模式简介
- Uva - 11636 - Hello World!
- hdu-第几天
- [C#]ExecuteNonQuery()返回值注意点 ExecuteScalar()
- C++ 虚函数表解析