Konvertieren Sie "Bean" in "Mock", um den Inhalt mit "Custom Validator" zu testen, z. B. "@ Autowired".
Die Implementierung ist wie folgt, bitte beachten Sie die Kommentare für jede Erklärung.
//Wenn Sie diese beiden anhängen@RunWith(MockitoJUnitRunner.class)Keine Notwendigkeit für Regeln oder Regeln
@ExtendWith(SpringExtension.class)
@SpringBootTest
class HogeTest {
//Verspotten Sie die Bohne, diese Instanz wird injiziert
@MockBean FugaDao fugaDao;
@Test
@DisplayName("Wenn du es nicht von Dao bekommen könntest")
void isEmpty() {
//Die Einstellungsmethode für Mock ist dieselbe wie bei Verwendung von normalem Mockito
when(fugaDao.selectFuga(anyInt())).thenReturn(Optional.empty());
/*Zur tatsächlichen Validierung weggelassen*/
}
}
Das Folgende ist eine Ergänzung zu dieser Methode.
1 Für Inhalte, die selbst in den Instanzinhalt einbezogen werden können, z. B. die Möglichkeit, in den Konstruktor einzutreten, ist es besser, direkt zu "verspotten" und zu testen, sofern keine besonderen Umstände vorliegen.
2 Es ist seltsam, dass das Testen einer konkreten Klasse von der Implementierung von "CustomValidator" abhängt. Daher ist es besser, "CustomValidator" zum "Mock" zu machen. Soweit ich recherchiert habe, habe ich die folgende Methode gefunden.
--Verwenden Sie Reflection, um "Custom Validator" durch "Mock" zu ersetzen
In diesem Artikel habe ich mich aus verschiedenen Gründen entschieden, keine der beiden Methoden zu verwenden. Daher teste ich mit der Methode zum Konvertieren von "Bean" in "Mock".
Recommended Posts