前言
之前在写业务逻辑的时候,都很少有写单元测试。因公司项目用的分布式架构,将整个系统抽成了很多微服务。测试一个接口,需要启动好几个服务,才能进行测试。并且有时候,我们只是改了一点代码,并不需要全部启动,太耗时,这个时候,就可以编写单元测试,简单的测试一下我们的代码。
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。
自动生成
两种快捷键:
1.在要生成测试类的类里面,按ctrl+shift+t –> create new test
2.将鼠标光标放到要生成测试类的类名或者方法名上面,按ctrl + enter –> create test
点击创建create test:弹出下面选择框
Test /** * @author Jiangcheng Xiang */@RunWith(SpringJUnit4ClassRunner.class)@SpringApplicationConfiguration(classes = FlightApiApplication.class)public class WhiteScreenSearchTransformerTest { private static final Logger LOGGER = LoggerFactory.getLogger(WhiteScreenSearchTransformerTest.class); @Autowired private WhiteScreenSearchTransformer searchTransformer; @Test public void transformRequest() { LOGGER.info("测试whiteScreen request transformer"); WhiteScreenSearchRequest request = new WhiteScreenSearchRequest(); List<WhiteScreenItinerary> itinerarys = Arrays.asList(new WhiteScreenItinerary("CTU", "TYO", "20181214"), new WhiteScreenItinerary("TYO", "TPE", "20181216"), new WhiteScreenItinerary("TPE", "HKG", "201812117") ); request.setItineraries(itinerarys); ActionRelated actionRelated = searchTransformer.transformRequest(request); assertTrue(actionRelated instanceof SearchFlightRequest); SearchFlightRequest searchFlightRequest = (SearchFlightRequest) actionRelated; assertEquals(1, searchFlightRequest.getAdultNumber()); assertFalse(searchFlightRequest.getTrips().isEmpty()); assertTrue(searchFlightRequest.getTrips().size() == 3); }} 注意
如果启动项目时,单元测试走不通,可以忽略掉tests mode。如下图