spring項目如何寫單元測試
一、Junit4
后台開發過程中,寫單元測試是非常重要的,對於我們開發人員調試、排查問題是很方便的,
但是我們在啟動項目的時候,需要將所以類交給spring托管,在單元測試中需要怎么實現類的注入呢?
直接上圖
繼續上代碼(Junit4)
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={
"classpath:application-context.xml",
"classpath:application-database.xml",
"classpath:application-redis.xml"})
public class PartRelevanceTest {
@Resource
private PartRelevanceMapper partRelevanceMapper;
@Test
public void selectTypeNumOne() {
PartRelevanceTypeNum record = new PartRelevanceTypeNum();
record.setRelCode("2222112");
record.setType("2");
PartRelevanceTypeNum typeNum = partRelevanceMapper.selectTypeNumOne(record);
System.out.println(typeNum==null?"typeNum-數據為空":typeNum.toString());
}
}
原文:https://my.oschina.net/u/4269071/blog/3357680
二、Junit5
另一種測試方式(Junit5):
package com.luwanglin.controller;
import com.luwanglin.pojo.Books;
import com.luwanglin.service.BookService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig;
import java.util.List;
/**
* @author luwanglin
* @email 1769862620@qq.com
* @Date 2020/10/2 10:14
* @Version 1.0
*/
@SpringJUnitWebConfig(locations = {"classpath:applicationContext.xml"})
public class MyTestTest2 {
@Autowired
private BookService bookService1;
/*@Test
void test01() {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
BookServiceImpl bookService = (BookServiceImpl) context.getBean("bookServiceImpl");
List<Books> list = bookService.queryAllBook();
System.out.println(list);
}*/
@Test
public void test02() {
List<Books> list = this.bookService1.queryAllBook();
System.out.println(list);
}
}
問題解決:
-
junit測試用例啟動報錯java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig
將servlet-api改成4.0.1的,這是因為servlet版本太低導致的,換成如下的maven依賴
<!-- servlet-jsp--> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency>