зеркало из
				https://github.com/iharh/notes.git
				synced 2025-11-03 23:26:09 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			59 строки
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			59 строки
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
2022
 | 
						|
Udemy - Learn integration testing with Spring Boot
 | 
						|
    https://www.udemy.com/course/learn-integration-testing-with-spring-boot/
 | 
						|
    magnet:?xt=urn:btih:1bf94df2619b72ca60de8e2223202b6d2576a510
 | 
						|
    ! 363.5m
 | 
						|
Advanced Spring - Effective Integration Testing with Spring Boot
 | 
						|
    magnet:?xt=urn:btih:afd24823c218c0cc876504cb86723cfc44b9ab29
 | 
						|
    ! 201.5m, non-complete
 | 
						|
 | 
						|
https://www.linkedin.com/learning/spring-boot-test-driven-development
 | 
						|
    AopTestUtils
 | 
						|
    ReflectionTestUtils
 | 
						|
    MvcTestUtils, Mvc test client, MockMvc
 | 
						|
 | 
						|
    Unit Test
 | 
						|
    @ExtendsWith(MockitoExtension.class)
 | 
						|
    Integration
 | 
						|
    @SpringBootTest(classes=MyConfig.class)
 | 
						|
    @AutoConfigureTestDatabase(replace=Replace.ANY)
 | 
						|
    @AutoConfigureMockMvc
 | 
						|
        @Autowired
 | 
						|
        MockMvc mockMvc;
 | 
						|
        someTestMethod() {
 | 
						|
            mockMvc.perform(get("/someEndpoint"))
 | 
						|
              .andExpect(status().isOk())
 | 
						|
              .andExpect(content().string(containsString("some-uuid")))
 | 
						|
        }
 | 
						|
 | 
						|
https://www.linkedin.com/learning/advanced-spring-effective-integration-testing-with-spring-boot
 | 
						|
    @SpringBootTest
 | 
						|
    @DataJpaTest (without web layer), @DataJdbcTest, ... @DataRedisTest
 | 
						|
    @WebMvcTest (loads web-layer only to the context without persistence layer), @RestClientTest, @WebServiceClientTest, @WebFluxTest
 | 
						|
    @MockBean ? for UT
 | 
						|
    BDDMockito lib
 | 
						|
        instead of when(methodCall).then(doSomething)
 | 
						|
        given(methodCall).will(doSomething)
 | 
						|
 | 
						|
    TestEntityManager mgr
 | 
						|
    mgr.persistFlushFind(obj) -> to bypass hbm L1 cache
 | 
						|
 | 
						|
    @ExtendsWith(MockitoExtension.class)
 | 
						|
    @InjectMock - uses constructor or setter injection
 | 
						|
    @Mock - replaces whole class entirely
 | 
						|
    @Spy - takes existing object and replaces only some methods
 | 
						|
    @MockBean and @SpyBean
 | 
						|
 | 
						|
    @ExceptionHandler+@ResponseStatus()
 | 
						|
    or @ResponseStatus(HttpStatus.NOT_FOUND)
 | 
						|
    public void someMethod(SomeEx-n)
 | 
						|
    mockito given().willThrow(...)
 | 
						|
 | 
						|
    @RestClientTest (MockRestServiceServer, only for RestTemplate)
 | 
						|
    WireMock is better
 | 
						|
 | 
						|
    SpringCloudContract (generate tests by contract def-n), 
 | 
						|
        StubRunner fetches generated jar and spins stub-server at config-d port
 | 
						|
        @SpringBootTest
 | 
						|
        @AutoConfigureStubRunner(ids="group:artifact:+:8080", stubsMode=StubRunnerProperties.StubsMode.LOCAL)
 |