Pour tester le contenu impliquant Custom Validator
tel que l'utilisation de @ Autowired
, créez Bean`` Mock
.
La mise en œuvre est la suivante, veuillez vous référer aux commentaires pour chaque explication.
//Si vous attachez ces deux@RunWith(MockitoJUnitRunner.class)Pas besoin de règles ou de règles
@ExtendWith(SpringExtension.class)
@SpringBootTest
class HogeTest {
//Mock the bean, cette instance est injectée
@MockBean FugaDao fugaDao;
@Test
@DisplayName("Si vous ne pouviez pas l'obtenir de Dao")
void isEmpty() {
//La méthode de réglage pour mock est la même que lors de l'utilisation normale de Mockito
when(fugaDao.selectFuga(anyInt())).thenReturn(Optional.empty());
/*Omis pour la validation réelle*/
}
}
Ce qui suit est un supplément sur cette méthode.
1 Pour les contenus qui peuvent être impliqués dans le contenu de l'instance par vous-même, comme être capable d'entrer dans le constructeur, il est préférable de directement «Mock» et de tester à moins qu'il y ait des circonstances spéciales.
2
Il est étrange que le test d'une classe concrète dépende de l'implémentation de CustomValidator
, il est donc préférable de faire CustomValidator`` Mock
.
Dans la mesure où j'ai recherché, j'ai trouvé la méthode suivante.
--Utilisez la réflexion pour remplacer Custom Validator
par Mock
--Utilisez JMockito
ou Power Mock
pour" Mocker toutes les instances de cette classe "
Dans cet article, j'ai décidé de ne pas utiliser l'une ou l'autre de ces méthodes pour diverses raisons, donc je teste avec la méthode de conversion de «Bean» en «Mock».
Recommended Posts