![](/img/trans.png)
[英]Writing JUnit Test for FileUpload Spring MVC Controller
[英]Junit for Spring MVC Controller
我有一個Spring MVC應用程序,其中的一個控制器具有以下方法:
@PreAuthorize("isAuthenticated()")
@RequestMapping(value = "/admin/edit_admin", method = RequestMethod.GET)
public String editAdmin(Model model, HttpServletRequest request) {
String returnPage = "create_admin";
if (request.getParameter("login") != null) {
try {
List<AdminUser> userList = adminDAO.getAdminByLogin(request
.getParameter("login"));
if (userList.size() == 1)
model.addAttribute("ADMIN_USER", userList.get(0));
returnPage = "edit_admin";
} catch (Exception err) {
returnPage = "edit_admin";
}
}
return returnPage;
}
DAO Class:
public List<AdminUser> getAdminByLogin(String login) throws SQLException {
List<AdminUser> userList = new ArrayList<AdminUser>();
String sql = "select * from ADMIN_USER where login=?";
List<Map<String, Object>> result = jdbcTemplate
.queryForList(sql, login);
AdminUserRowMapper rowMapper = new AdminUserRowMapper();
for (Map<String, Object> map : result) {
AdminUser aUser = (AdminUser) rowMapper.mapRow(map);
userList.add(aUser);
}
return userList;
}
我需要為Controller和DAO編寫Junit測試類。 我嘗試首先為控制器編寫Junit測試:
@Test
public void editAdmin() throws SQLException {
AdminUserDAO adminDAO = new AdminUserDAO();
List<AdminUser> userList = adminDAO.getAdminByLogin("1234");
}
但是,當我運行此類時,會在DAO類上引發NullpointerException。 可以幫我為Controller和DAO編寫Junit測試類嗎? 我無法使用MockMvc,因為我正在使用不兼容的Spring框架。
首先, 測試控制器不是一個好主意 。 控制器只是一種傳遞機制 ,您要真正測試的是“ getAdminByLogin”用例。 理想情況下,控制器方法editAdmin()應該調用將用作您的用例的服務類的editAdmin()。
您的測試應直接使用服務類,即注入AdminUserDAO的模擬,然后調用服務類的editAdmin()。 最后,您可以驗證模擬是否感興趣,例如-
Mockito.verify(mockAdminDAO).getAdminByLogin("1234");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.