2017-05-29 249 views
0

我有一個春天啓動應用程序(嵌入式的Tomcat,Thymeleaf模板......)我的控制器 這裏之一:@ModelAttribute在春季啓動應用程序

@Controller 
@RequestMapping("/company") 
public class CompanyController { 

    @RequestMapping(value = { "/list" }, method = { RequestMethod.GET }) 
    public String companyList(Company company, ModelMap model) { 
     return serverContextPath + COMPANY_LIST_VIEW_NAME; 
    } 

    @ModelAttribute("companies") 
    public Iterable<Company> companies(){ 
     return companyService.findAll(); 
    } 
} 

我創建這個JUnit測試來驗證我的控制器正常工作

@ContextConfiguration(classes = { MyApplicationConfig.class }) 
public class CompanyControllerTests { 


    private CompanyController controller; 

    @Value("${server.contextPath}") 
    protected String serverContextPath; 

    @Before 
    public void setUp() throws Exception { 
     controller = new CompanyController(); 
    } 


    @Test 
    public void testCompanyList() { 

     ExtendedModelMap model = new ExtendedModelMap(); 
     String viewName = controller.companyList(new Company(), model); 
     assertEquals(serverContextPath + CompanyController.COMPANY_LIST_VIEW_NAME, viewName); 
     Iterable<Company> companies = (Iterable<Company>) model.get("companies"); 
     assertNotNull(companies); 

    }  
} 

但我有一個AssertionError assertNotNull(companies);

+1

爲什麼應該是充滿除了測試控制器?你直接調用一個方法,你沒有使用Spring MVC基礎設施進行測試。 –

+0

MockMvc是您測試控制器所需的。 – akuma8

回答

0

也許你需要模擬此調用一些預期RESU LT:

companyService.findAll() 

能夠從服務

相關問題