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