Was macht unit-test-mapper-converter?
Bietet Muster für Unit-Tests von Mappern, Konvertern und Bean-Mappings. Validiert Entity-zu-DTO- und Modelltransformationslogik isoliert. Generiert ausführbare Mapping-Tests mit MapStruct- und benutzerdefinierten Konverter-Testabdeckungen. Verwenden Sie dies beim Schreiben von Mapping-Tests, Konvertertests, Entity-Mapping-Tests oder zur Sicherstellung korrekter Datentransformation zwischen DTOs und Domänenobjekten.
Verwendung
Verwenden Sie diesen Skill, wenn Sie Mapper für die Datenzuordnung zwischen Schichten testen möchten. Dies umfasst:
- MapStruct-Mapper – Automatisch generierte Mapper, die z. B. aus einer Benutzer-Entity eine Benutzer-DTO erstellen.
- Benutzerdefinierte Konverter – Manuell geschriebene Konverter für komplexe Transformationen, für die MapStruct nicht ausreicht.
- Bean-Mappings – Standardmäßige Bean-Kopierframeworks wie ModelMapper oder Dozer.
Hauptmerkmale
- Isolation – Testet die Mapping-Logik ohne Datenbank- oder Service-Schicht.
- Abdeckung – Deckt Standard- und Randfall-Szenarien ab (Nullwerte, leere Felder, zugeordnete Sammlungen).
- Vorlagen – Enthält wiederverwendbare Testvorlagen für MapStruct und benutzerdefinierte Konverter.
- Assertion-Muster – Vorschläge für Assertionen mit AssertJ oder Hamcrest zur Überprüfung von Feldwerten.
Beispiel (Java / MapStruct)
Angenommen, Sie haben eine UserEntity und eine UserDTO:
public class UserEntity {
private Long id;
private String name;
private String email;
// Getter und Setter
}
public class UserDTO {
private Long id;
private String fullName;
private String emailAddress;
// Getter und Setter
}
Ein Test für einen MapStruct-Mapper könnte wie folgt aussehen:
@ExtendWith(MockitoExtension.class)
class UserMapperTest {
@InjectMocks
private UserMapper userMapper = Mappers.getMapper(UserMapper.class);
@Test
void shouldMapEntityToDto() {
UserEntity entity = new UserEntity();
entity.setId(1L);
entity.setName("John Doe");
entity.setEmail("[email protected]");
UserDTO dto = userMapper.toDto(entity);
assertThat(dto.getId()).isEqualTo(1L);
assertThat(dto.getFullName()).isEqualTo("John Doe");
assertThat(dto.getEmailAddress()).isEqualTo("[email protected]");
}
@Test
void shouldHandleNullEntity() {
UserDTO dto = userMapper.toDto(null);
assertThat(dto).isNull();
}
}
Konfiguration
Fügen Sie die erforderlichen Abhängigkeiten zu Ihrer pom.xml oder build.gradle hinzu. Hier ein Beispiel für Maven:
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.5.Final</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.5.Final</version>
<scope>provided</scope>
</dependency>
Unterstützte Plattformen
- MapStruct 1.4+ und 1.5+
- ModelMapper
- Dozer
- Benutzerdefinierte Konverter (manuell implementiert)
Verwandte Skills
giuseppe-trisciuoglio/unit-test-service– Tests für Service-Schichtengiuseppe-trisciuoglio/unit-test-controller– Tests für Controller/API-Endpunktegiuseppe-trisciuoglio/unit-test-repository– Tests für Datenzugriffsschichten