Study report of JUnit
junit是什么
junit是java的单元测试工具,当前看来最大的作用是无需新建main
函数即可验证单一函数,确实是神器,我们可以看一下他的用法。
用法实例
// Hello类
public class Hello {
public int Add(int a, int b) {
int c;
...
return c;
}
}
对于这样一个类,我们不知道我们实现的Add
函数是否正确啊,谁知道我的...
里的逻辑到底是不是对的呢?
这时候我们可以在Hello
类新建一个main
函数跑一下这个加法函数,或者新建一个测试类,在类中声明Hello
类的一个实例,然后测试Add()
方法,这应该是我们的最基本的思路。
现在有了Junit,我们可以换一个思路了,我们来新建一个类HelloTest
import org.junit.Test;
import static org.junit.Assert.assertEquals;
# HelloTest 类
public class HelloTest {
public Hello instance = new Hello();
...
@Test
public void addTest() {
int c = instance.Add(1, 3);
assertEquals(c, 4);
}
...
}
省略了不少其他的方法,单单留下这个最主要的@Test
,这个部分的函数可以用junit单独运行,通过断言,也就判断了是否正确。
其他的
除了@Test
,还有不少其他的符号(叫做元数据),分别有不同的意义
符号 | 意义 |
---|---|
@Before | 使用了该元数据的方法在每个测试方法执行之前都要执行一次。 |
@After | 使用了该元数据的方法在每个测试方法执行之后要执行一次。 |
@Test(expected=*.class) | 指定错误类型 |
@Test(timeout=xxx) | 如果测试方法在制定的时间之内没有运行完,则测试也失败。 |
@Ignore | 有个可选的String 参数,比如@Ignore("还没写这个函数呢") |
运行
$ javac –classpath .:junit-4.9.jar HelloWorldTest.java
$ java –classpath .:junit-4.9.jar –ea org.junit.runner.JUnitCore HelloWorldTest