如何使用junit做单元测试?
答案很简单:搭好环境写好测试类,运行就可以了!但如果我有很多个测试类(方法),如何做到一次运行多个测试类呢?
首先创建个待测试的bean
package test;
public class testClass {
public static String sayHello(){
return "Hello";
}
然后创建junit测试类,如下:
注意必须继承TestCase类
package test;
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class testClassTest extends TestCase{
private testClass test;
@After
public void s2(){
System.out.println("over");
}
@Before
public void setUp() throws Exception {
test = new testClass();
System.out.println("start");
}
@Test
public void testSayHello() throws Exception{
assertEquals("Hello", testClass.sayHello());
}
@Test
public void testSayHello2() throws Exception{
assertEquals("Hello", "Hello");
}
}
到目前为止,测试类已经创建完成,如果运行测试类的话,就可以对相应方法进行测试,一下要讲的就是如何对多个测试类进行测试。
创建TestRunning类
package test;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class TestRunning extends TestCase {
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTestSuite(testClassTest.class);
//在此添加测试类即可
//suite.addTestSuite(TestStudent.class);
return suite;
}
}
当运行时,控制台会告诉你运行的结果,如果有不符合断言的情况,控制台会输出详细信息。
这样,可以对局部或者全部的测试类进行测试,而不需要对手动运行每个测试类。
当然了,junit还可以通过另外一种方式对某个测试类的某个方法进行测试,如下代码所示:
package test;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class TestRunning extends TestCase {
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public static Test suite(){
TestSuite suite = new TestSuite();
suite.addTest(new TestStudent("testGet"));
suite.addTest(new TestStudent("testSet"));
return suite;
}
}
以上suite()中对TestStudent的testGet和testSet方法进行了测试。
不过这也是手动在添加代码吧?如果有开发出注解的方法,应该会更好。