前言: 其實,可以理解爲我是佔位的,嘿嘿。 話說還是關於校驗器, 當時寫完校驗器後,就想立馬測試一番,呃,由於各種原因吧,沒辦法從頁面進入測試,而且也怪麻煩的。當然了, 本寶更不想用postMan, 嗯,就想折騰!
一、最開始的代碼
@WebMvcTest(BabyInsuranceController.class)
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {MockServletContext.class})
@WebAppConfiguration
@Import(WebSecurityConfig.class)
public class BabyInsuranceControllerTest {
@Autowired
private MockMvc mockMvc;
@InjectMocks
private BabyInsuranceController babyInsuranceController;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.standaloneSetup(babyInsuranceController).build();
}
@Test
public void informationAdd() throws Exception {
BabyProposalFacadeDTO babyProposalFacadeDTO = new BabyProposalFacadeDTO();
RequestBuilder requestBuilder = post(
BabyInsuranceUrlConstants.BABYINSURANCE + BabyInsuranceUrlConstants.INFORMATION_ADD)
.contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE)
.requestAttr("name", "測試用戶");
this.mockMvc.perform(requestBuilder).andExpect(status().isOk());
}
}
在寫完校驗器後,我稍加改造,校驗了基本的數據問題, 但有一個校驗點是重複校驗,這個需要調用服務查詢數據庫內容, 本寶連續測了兩把都沒成, 一直報NullPoint這種錯。 我一直以爲是我輸入的校驗值漏掉了啥, 但轉眼一想,我靠, 我就算漏掉了,根據我的處理,也應該是給出個具體的錯誤提示信息,而不是直接空指針。 後來難能好心情,跟了把代碼,發現是服務注入的時候,沒成功, 是個沒有對象的野指針。 然後就無語了, 本來領導說他去調調這個mock測試的事兒, 誰成想,我就改了個註解,就好了:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MFacadeApp.class)
@WebAppConfiguration
public class BabyInsuranceControllerTest {
private MockMvc mockMvc;
@Autowired
private BabyInsuranceController babyInsuranceController;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.standaloneSetup(babyInsuranceController).build();
}
@Test
public void informationAdd() throws Exception {
BabyProposalFacadeDTO babyProposalFacadeDTO = new BabyProposalFacadeDTO();
babyProposalFacadeDTO.setRateId("1");
babyProposalFacadeDTO.setStartDate("2017-12-12");
BabyProposalHolderPersonFacadeDTO holder=new BabyProposalHolderPersonFacadeDTO();
holder.setTel("15123423407");
holder.setName("sdfk");
holder.setCertType(1);
holder.setCertNo("130103200001014034");
holder.setEmail("[email protected]");
holder.setSex(1);
babyProposalFacadeDTO.setProposalHolderPerson(holder);
List<BabyProposalSubjectPersonMasterFacadeDTO> subjects= Lists.newArrayList();
BabyProposalSubjectPersonMasterFacadeDTO subject=new BabyProposalSubjectPersonMasterFacadeDTO();
subject.setName("AngelinaTest");
subject.setCertNo("513029199209285883");
subject.setCertType(1);
subjects.add(subject);
babyProposalFacadeDTO.setProposalSubjectPersonMasters(subjects);
babyProposalFacadeDTO.setSellChannelCode("12314");
MvcResult result = mockMvc.perform(post(
BabyInsuranceUrlConstants.BABYINSURANCE + BabyInsuranceUrlConstants.BABY_INFORMATION_ADD)
.contentType(MediaType.APPLICATION_JSON).content(JSONObject.toJSONString(babyProposalFacadeDTO)))
.andExpect(status().isOk()).andReturn();
System.out.println(result.getResponse().getContentAsString());
}
}
諾,這樣就好了。 spring boot有用於測試的註解好不勒!
二、個人總結
腫麼辦, 總感覺我變懶了。 爬蟲代碼寫了,也不想總結。 說好了要總結橋接模式,類圖畫了,就不想貼博客寫文字。我就是個懶貨, 微服務的錄音也停了好久了, 獎勵我自己一頓好吃的,然後從新做人得了!
不過, 短暫的頹廢和墮落是可以咬咬牙原諒自己的,但要一直這樣是不行滴。 下個月考試計算機網絡原理, 我還沒有看書。 呃,接下來的博客,可能會暫時貼看書筆記了。 大家爲我祈禱啊,這次要考過哦!——加油