最近公司來了一個新手,剛畢業的。在開發進行單元測試時發現了很多問題,那現在我就來梳理一下,這些問題。
對一個方法或者一個類進行測試我大致分爲三種:
1.利用main方法進行測試,對一個方法或者一個類進行測試。這個當然很簡單,new一下,調用一下方法就可以,我就不做闡述了。
2.如果我們用單元測試類來測試一個不依賴web或者任何容器的比如像spring這樣的容器,我們一般這麼做:
新建一個單元測試類。
然後你就可以寫你的測試代碼了。
package test.cn.bean;
import static org.junit.Assert.*;
import org.junit.Test;
public class testclass {
@Test
public void test() {
user u=new user();
u.add();
}
}
如果你的這個類的測試方法很多,你就沒必要每次都去new一個類對象了。你可以選擇重寫setUpBerforeClass()把new的代碼放在這裏面,前提是你在這個測試類中定義一個屬性。來提供給類方法。這樣你就可以直接用了不需要每一次都去new一個對象出來。
3.帶有web容器的單元測試。
首先大家應該知道基於容器的框架都是要啓動框架才能得到實例和一些數據信息,比方sessionfactory。那我們單元測試怎麼辦呢,其實很簡單,我們只要手動的開啓web容器就可以了。
勾選之後就會有這個方法,我們在這裏面就可以進行容器實例化了。
//實例化容器,beans.xml是spring的配置文件
ApplicationContext appContext = new ClassPathXmlApplicationContext(“beans.xml”);
//獲取測試類的接口類型,userdao爲接口類型的類屬性.userDaoImpl是接口類型的實現類
userdao=(UserDao)appContext.getBean("userDaoImpl");
這樣我們在測試的時候就再也不會出現nullpointException了。