Bonjour.
Je m'appelle Evgeny Frolikov, je suis développeur chez AlfaStrakhovanie
En cours de travail sur un projet chez AlfaStrakhovanie, nous écrivons un projet sur les micro services et il s'est avéré que l'un des "micro services" a beaucoup grandi (mais il est encore loin du monolithe :)). Nous avons vécu si heureux pour toujours, jusqu'à ce que nous ayons commencé à «passer» au cloud, puis l'aventure a commencé.
Cette décision n'a pas été particulièrement mémorable pour l'équipe de développement, uniquement avec les questions de DevOps sur les ports, etc. Notez que nous supprimons tous les tests d'intégration afin de se débarrasser de la dépendance aux autres équipes lorsque quelque chose tombe sur leurs bancs de test. Mais la «magie» a commencé à se produire dans les tests JUnit, à savoir les tests ont commencé à échouer. Ils sont tombés fantômes et imprévisibles, pour le moment, ils ont été traités avec un pipeline de recyclage, jusqu'à ce que ce problème devienne un bloqueur pour le calcul des changements.
retraem
" " .
( ) . ( , c Sonar).
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class ContractStatusServiceTest {
@Autowired
private ContractStatusService contractStatusService;
@MockBean
private RsaInfoComponent rsaInfoComponent;
@MockBean
private ContractRepository contractRepository;
""
@RunWith(SpringJUnit4ClassRunner.class) - Spring
@SpringBootTest - Spring Boot (, @SpringBootApplication) Spring. SpringBootTest
@Autowired - Bean;
@Autowired , .
.
@RunWith(SpringRunner.class)
@SpringBootTest
@RequiredArgsConstructor
public class ComponentTestTest {
// @Autowired
private final ComponentTest componentTest;
,
1)@RequiredArgsConstructor - Lombok final.
.....
java.lang.Exception: Test class should have exactly one public zero-argument constructor
at org.junit.runners.BlockJUnit4ClassRunner.validateZeroArgConstructor(BlockJUnit4ClassRunner.java:171)
at org.junit.runners.BlockJUnit4ClassRunner.validateConstructor(BlockJUnit4ClassRunner.java:148)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:127)
...
.
, Mock
@RunWith(MockitoJUnitRunner.class)
public class CrossProductServiceTest {
@InjectMocks
private CrossProductService crossProductService;
@Mock
private KaskoService kaskoService;
@Mock
private CrownVirusOfferService crownVirusOfferService;
"".
:
( )
: