Spring控制器的JUnit测试。预计“200”,但是“404”

时间:2014-09-18 12:42:56

标签: spring-mvc junit mockito

我正在尝试用JUnit测试我的Spring MVC控制器,我得到了这个:

java.lang.AssertionError: Status expected:<200> but was:<404>

我想我的控制器测试的JUnit设置不能正常工作,但我真的不能指出错误在哪里。我已经阅读了很多这方面的教程,令人沮丧。

这是我的LoginController类的简化版本,但它就足够了

@Controller
public class LoginController {

@Autowired
private DAO dao;

@RequestMapping(value = "username", method = RequestMethod.GET)
public String GetUsername(Model model){

model.addAttribute("username", dao.getUsername());                  

    return "login"; //login.jsp 
}

这是测试该控制器的JUnit类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/Spring-Context.xml")
public class LoginControllerTest {

@Mock
private DAO dao;

@InjectMocks
LoginController controller;

private MockMvc mockMvc;


@Before
public void setUp(){
    MockitoAnnotations.initMocks(this);
    this.mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
}

@Test
public void test() throws Exception{
    mockMvc.perform(get("username")).andExpect(status().isOk());        
}
}

我得到“404”。同样的事情,如果我测试示例“forwardedUrl(”/ PATH / login.jsp“)”结果为null。

我的Spring-Context.xml有

  

mvc:annotation-driven /&gt;

我的控制台错误是: org.springframework.web.servlet.DispatcherServlet noHandlerFound 警告:在DispatcherServlet中,名称为“

”的HTTP [username]的HTTP请求未找到映射

我真的没有这样做,因为毕竟我的应用程序工作正常,所以我的映射没有问题。

0 个答案:

没有答案