您的位置:首页 > 编程语言 > Java开发

Junit对Spring Controller进行单元测试

2016-02-26 10:31 786 查看
Jar包准备:junit-4.8.jar(必须是junit-4.1.0以上)

一:需要测试的方法

package com.junitDemo.controller.mobile;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class IndexController {
/**
* 主页
*/
@RequestMapping(value = "/index")
public ModelAndView index() {
LOG.info("进入了主页");
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("/index");
return modelAndView;
}

}


二:测试类

在测试类中有使用到注解:

@RunWith(SpringJUnit4ClassRunner.class)

设置运行方式

@(locations={“classpath:applicationContext.xml”})
引入配置文件

package com.junitDemo.controller.mobile;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
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;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext.xml","classpath:servlet-context.xml"})
public class IndexControllerTest {

private MockMvc mockMvc;
@Autowired
private IndexController indexController;
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders.standaloneSetup(indexController).build();
}
/**
* 主页
*/
@Test
public void testIndex() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/index.html"))
.andExpect(MockMvcResultMatchers.view().name("/index"))
.andReturn();
}

}
使用andExpect()进行断言,断言方式也可以这样写:

assertEquals("/index",mvcResult.getModelAndView().getViewName());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: