版权声明:每天进步一点点——我也只是写着玩儿——随便转随便评 https://blog.csdn.net/u013034889/article/details/79560938
前言: 其实,可以理解为我是占位的,嘿嘿。 话说还是关于校验器, 当时写完校验器后,就想立马测试一番,呃,由于各种原因吧,没办法从页面进入测试,而且也怪麻烦的。当然了, 本宝更不想用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有用于测试的注解好不勒!
二、个人总结
肿么办, 总感觉我变懒了。 爬虫代码写了,也不想总结。 说好了要总结桥接模式,类图画了,就不想贴博客写文字。我就是个懒货, 微服务的录音也停了好久了, 奖励我自己一顿好吃的,然后从新做人得了!
不过, 短暂的颓废和堕落是可以咬咬牙原谅自己的,但要一直这样是不行滴。 下个月考试计算机网络原理, 我还没有看书。 呃,接下来的博客,可能会暂时贴看书笔记了。 大家为我祈祷啊,这次要考过哦!——加油