1. StartUp
引入JUnit依赖, 用@Test标注需要被测试的方法,使用Assert进行测试结果是否通过
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
import org.junit.Assert; import org.junit.Test; public class AssertTest { @Test public void testAssertEquals(){ Assert.assertEquals("HelloJUnit", "HelloJUnit"); Assert.assertNotEquals("HelloWorld", "HelloJUnit"); } }
2. 常用Assert方法
进行测试结果是否满足预期
Assert.assertEquals, Assert.assertNotEquals
Assert.assertSame, Assert.assertNotSame
Assert.assertTrue, Assert.assertFalse
Assert.assertNull, Assert.assertNotNull
Assert.assertThat
Assert.assertArrayEqauls
Assert.fail
3. 常用Assume方法
与Assert类似,但不会使TestCase执行失败。假设测试结果满足时,才继续往下执行,否则忽略该TestCase。
可用于依赖第三方,需要第三方执行成功后续TestCase才能执行的情况
Aassume.assumeTrue
Aassume.assumeFalse
Aassume.assumeNotNull
Aassume.assumeThat
Aassume.assumeNoException
4. TestRunner
JUnit内置的TestCase执行器,其类层次结构及说明如下:
@RunWith(Runner.class) 生效某个Runner
ParentRunner
BlockJUnit4ClassRunner //JUnit默认TestRunner
JUnit4 //当前默认TestRunner别名, 为了防止后续版本默认TestRunner行为有变化,明确标记使用当前默认TestRunner
BlockJUnit4ClassRunnerWithParameters
Theories
Suite //创建包含多个测试类的套件 @SuiteClasses指定包含的测试类
Enclosed //包含静态内部类中的TestCase
Categories //分组测试 @IncludeCategory,@ExcludeCategory指定包含及排除的分组
Parameterized //参数化测试 @Parameters 指定参数
5. TestRule
TestRule可以重新添加或定义类中的每个TestCase方法的行为,扩展测试方法的功能。诸如打开关闭资源,创建删除临时文件,超时控制,异常处理,获取当前TestCase方法名等
6. Test Fixtures
可以指定TestCase类加载前后,Method方法执行前后的行为
@BeforeClass //类级别, 在类加载执行时,会被调用
@AfterClass //类级别, 在类中所有TestCase执行结束时,会被调用
@Before //方法级别, 在TestCase执行前会被调用
@After //方法级别, 在TestCase执行后会被调用
7. 一般性功能
@FixMethodOrder //指定测试类内的TestCase执行顺序
@Test(expected = IndexOutOfBoundsException.class) //指定期望TestCase抛出的异常
@Ignore //指定忽略该TestCase
@Test(timeout=1000) //指定TestCase最大超时时间
Code:
Reference: