[英]Spring integration test & set field to controller
我正在嘗試創建我的第一個集成測試,從jhipster項目中獲得啟發。
在我的設置中,我使用這種代碼:
CampaignController campaignController = new CampaignController();
ReflectionTestUtils.setField(campaignController, "securityService", securityService);
ReflectionTestUtils.setField(campaignController, "campaignService", campaignService);
ReflectionTestUtils.setField(campaignController, "messageService", messageService);
MockMvc restMvcCampaignController = MockMvcBuilders.standaloneSetup(campaignController).setMessageConverters(TestUtil.getCustomJsonMessageConverter()).build();
RestAssuredMockMvc.mockMvc(restMvcCampaignController);
服務是自動裝配的類。 我想知道“ ReflectionTestUtils.setField”是否是一種好的做法,或者還有什么我可以使用的更好的方法?
謝謝
這不是一個好習慣。 除了使無法設置依賴項(而不是通過反射)之外,還可以通過構造函數注入依賴項。 例如
@Controller
public class Controller {
private CampaignService campaignService;
@Autowired
public Controller(CampaignService campaignService, MessageService messageService) {
//bind fields
}
}
現在,您可以輕松地從測試中實例化控制器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.