Spring中編寫單元測試


spring項目如何寫單元測試

一、Junit4

后台開發過程中,寫單元測試是非常重要的,對於我們開發人員調試、排查問題是很方便的,

但是我們在啟動項目的時候,需要將所以類交給spring托管,在單元測試中需要怎么實現類的注入呢?

直接上圖

img

繼續上代碼(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);
    }
}

參考官方文檔:https://www.docs4dev.com/docs/zh/spring-framework/5.1.3.RELEASE/reference/testing.html#spring-mvc-test-framework

問題解決:

  1. 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>
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM