一、理论
- 前言
- 为什么Junit没有main()方法就能运行(因为我们知道无论是什么程序都必须得有一个程序入口,而它通常是main)?
答:那么Junit4真的有main方法吗?没错,既然它能直接运行我们的方法,那它必然自己为JVM提供了程序入口。其实在org.junit.runner包下,有个JUnitCore.class,其中就有一个 标准的main方法,这就是JUnit入口函数。如此看来,它其实和我们直接在自己的main方法中跑我们要测试的方法在本质上是一样的。 - Runner 故事?
答:Runner只是一个抽象类,表示用于运行Junit测试用例的工具,通过它可以运行测试并通知Notifier运行的结果。通常我们可以在待测方法所在的类之上使用@RunWith注解来为这个测试类指定一个特定的Runner。不过在很多情况下,我们并没有这么做,那是因为,我们使用了Junit的默认Runnner------BlockJunit4ClassRunner。当我们不为测试类添加@RunWith注解的时候,其实使用的就是这个Runner,它作为默认Runner只为我们提供了基本的基于Junit生命周期的测试注解。而有更多非常规的测试需求,则需要我们为测试类添加@RunWith注解并指定特定的Runner来完成! - 常用注解
@BeforeClass
@Before
@Test(timeout / expected)
@After
@AfterClass
@RunWith
@SuiteClasses
@Ignore
@FixMethodOrder
@Parameterized
@Rule - 常用断言
assertNull
assertNotNull
assertEquals
assertFalse
assertTrue
assertSame
assertNotSame
assertThat - 待更新...
二、教程
- Junit - 测试框架介绍
- Junit - Eclipse 教程
- Junit - 基础注解(@BeforeClass、@Before、@Test、@After、@AfterClass)
- Junit - 断言方法(Assert Methods)
- Junit - 参数化测试(Parameterized Test)
- Junit - 套件测试(Suite Test)
- Junit - 忽略测试(Ignore Test)
- Junit - 超时测试(Timeout Test)
- Junit - 期望异常测试(Expected Test)
- Junit - 优先级测试(FixMethodOrder Test)
- 待更新...