SpringBoot的junit测试用例

以下是关于SpringBoot的junit测试用例,有关Controller层测试以及Service层、Dao层测试都适用。

首先pom文件中需要增加 spring-boot-starter-test 包,且junit的版本为4.0以后版本。

    
        junit
        junit
        4.12
        test
    



    
        org.springframework.boot
        spring-boot-starter-test
        test
    

以下为用例

import com.ijava.springboot.Application;
import com.ijava.springboot.dao.CategoryDAO;
import com.ijava.springboot.pojo.Category;
import com.ijava.springboot.web.CategoryController;
import com.ijava.springboot.web.HelloController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

import java.util.List;

/**
 * @author wang
 * @version 1.0
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)//Application是启动类
@AutoConfigureMockMvc
public class TestJunit {

    /**
     * 接口测试用例如下
     */


    private MockMvc mockMvc;

    /**
     * web项目上下文
     */
    @Autowired
    private WebApplicationContext webApplicationContext;

    @Before
    public void setup() {
        // 获取mockmvc对象实例
		mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
    }

    /*
     * 1、mockMvc.perform执行一个请求。
     * 2、MockMvcRequestBuilders.get("XXX")构造一个请求。
     * 3、ResultActions.param添加请求传值
     * 4、ResultActions.accept(MediaType.TEXT_HTML_VALUE))设置返回类型
     * 5、ResultActions.andExpect添加执行完成后的断言。
     * 6、ResultActions.andDo添加一个结果处理器,表示要对结果做点什么事情
     *   比如此处使用MockMvcResultHandlers.print()输出整个响应结果信息。
     * 7、ResultActions.andReturn表示执行完成后返回相应的结果。
     */
    @Test
    public void testHello() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/listCategoryDate")//接口地址
                // 设置返回值类型为utf-8,否则默认为ISO-8859-1
                .accept(MediaType.APPLICATION_JSON_UTF8_VALUE)
                .param("start","1").param("size","10"))//添加请求参数
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andDo(MockMvcResultHandlers.print());
    }

    /**
     * Service层单元测试与dao层单元测试用法如下
     */
    @Autowired
    CategoryDAO dao;

    @Test
    public void test() {
        List cs=  dao.findAll();
        for (Category c : cs) {
            System.out.println("c.getName():"+ c.getName());
        }

    }
}

 

你可能感兴趣的:(Java工具类,Java)