一、哪些要写集成测试
我们的代码一般分成,Controller(接口层),ApplicationService(应用服务层),Service(领域服务层),Repository(基础设施层)
其中,ApplicationService(应用服务层),Service(领域服务层)是需要写集成测试(组件测试)的。
二、集成测试写在哪
在src的main同级目录下,创建intergrationtest,用来放集成测试的案例
三、集成测试代码的命名规范
方法名一般都是when(当)什么什么时候then(然后)怎么怎么样。交代一下做了什么,有什么结果
四、如何写集成测试代码
@RunWith(SpringRunner.class) //JUnit4
//@ExtendWith(SpringExtension.class) //JUnit5
@SpringBootTest
public class HbHlsAppServiceImplIT {
// 待测试的领域服务
@Autowired
private IHbHlsAppService hbHlsAppService;
@Autowired
private JdbcHelper jdbcHelper;
private Map<String, String> oldData;
private HlsAppInf resultHlsAppInf;
@Before
public void setData(){
// given
oldData = new HashMap<>();
oldData.put("cmpNam", "网络科技123");
resultHlsAppInf = new HlsAppInf();
resultHlsAppInf.setCmpNam("网络科技");
resultHlsAppInf.setCmpNamAa("网");
resultHlsAppInf.setCmpNamAb("络科技");
}
@Test
public void changeAndCheck_when转值检核then存入相应的数据(){
// when
HbHlsApp hbHlsApp = hbHlsAppService.changeAndCheck(oldData);
// then 通过测试的jpa代码查询转值后的数据
HlsAppInf byAppNbr = jdbcHelper.findByAppNbr(hbHlsApp.getAppNbr());
resultHlsAppInf.setAppNbr(hbHlsApp.getAppNbr());
// 通过判定查出来的数据和转值后的数据是否每个栏位都一致
assertThat(resultHlsAppInf).isEqualToComparingFieldByField(byAppNbr);
}
}
网友评论