개체 해결에 대한 로깅
AutoParams는 테스트 실행 중 개체가 어떻게 해결되는지 이해하는 데 도움이 되는 자세한 로그를 제공합니다. 로깅을 활성화하려면 테스트 메서드에 @LogResolution
애노테이션을 @AutoParams
와 함께 적용합니다. 활성화된 경우, 테스트 실행 중 표준 출력으로 출력되어 각 값이 어떻게 생성되는지 쉽게 추적할 수 있습니다.
User
클래스의 자세한 추적 정보가 생성되는 예를 살펴보겠습니다. 다음 클래스가 주어졌을 때,
- Java
- Kotlin
@AllArgsConstructor
@Getter
public class User {
private final UUID id;
private final String email;
private final String username;
}
class User(
private val id: UUID,
private val email: String,
private val username: String
)
다음 코드를 실행하면,
- Java
- Kotlin
@Test
@AutoParams
@LogResolution
void testMethod(User user) {
}
@Test
@AutoKotlinParams
@LogResolution
fun testMethod(user: User) {
}
해결 프로세스의 계층적 시각화를 출력합니다.
User user (5ms)
├─ UUID id → fbdf7aa8-1af7-4308-bc64-ee9dbfeba8d2 (1ms)
├─ String email → 53bf56a3-8a42-47f3-a5c9-854862ea4a56@test.com (2ms)
└─ String username → usernamec6962921-ab77-4dbc-a71d-6932a9faa5be (1ms)
로그는 트리 구조를 사용하여 해결 계층 구조를 보여줍니다.
- 각 수준은 쿼리 유형과 매개변수 이름을 보여줍니다.
→
는 생성된 값을 나타냅니다.- 각 해결에 걸린 시간은 괄호 안에 표시됩니다.
- 들여쓰기 수준은 해결 체인의 깊이를 나타냅니다.
이 로깅은 다음과 같은 작업에서 특히 유용합니다.
- 사용자 정의
- 복잡한 개체 계층 구조
- 의존성 주입 시나리오
- 개체 생성 관련 테스트 실패 디버깅