在另一个服务类Mockito中模拟具有依赖项的服务类

时间:2018-11-13 06:17:48

标签: spring-boot kotlin mockito

我想模拟另一个服务类Mockito中具有依赖项的服务类。

UserService类

@Document(collection = "pruebas")

// Lombok's annotations
@Data @NoArgsConstructor @AllArgsConstructor
@EqualsAndHashCode @ToString
public class Prueba {
    @Id private String id;

    private String nombre;
    private boolean activo = false;
}

AdminService类

@Service
class UserService(
    val userRepository: UserRepository,
    val userRoleRepository: UserRoleRepository,
    val jwtGenerator: JwtGenerator,
    val emailService: EmailService
)

现在我正尝试使用以下类编写单元测试

@Service
class AdminService(
    val userService: UserService,
    val userRepository: UserRepository,
    val adminRepository: AdminRepository
)

请建议如何在注入了所有四个依赖项的AdminService中模拟userService

2 个答案:

答案 0 :(得分:2)

您可以将UserService的依赖项作为模拟对象创建,然后在AdminServiceTests中将其用作依赖项。

答案 1 :(得分:0)

如果您使用的是Gradle&Spring,请将此插件添加到build.gradle

plugins {
    kotlin("plugin.spring") version "1.3.72"
}

然后,Mockito应该无需模拟服务的依赖项即可工作:

val userService = Mockito.mock(UserService::class.java)