为 Spring 引导模块创建 Mockito 测试用例

Creating Mockito test case for Spring Boot module

我有一个 spring 引导模块:

Mainproject
-web
-model
-repository
-service

我已经为 web 创建了 mockito 测试用例。 我应该如何为服务层创建 mockito 测试用例。

我无法使用任何自动装配,因为我没有应用程序上下文。它给我错误:

package service;

import static org.junit.jupiter.api.Assertions.assertTrue;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;

@ExtendWith(MockitoExtension.class)
public class ProvidrsServiceTest {
    
    @Autowire
    config config;

}

其次我有这个配置豆:

class config{

@value
@value
@value..

}

它只是从 属性 文件中获取一些值。我可以嘲笑这个吗?如何 。请告诉.

你能告诉我我应该如何构建 mockito 测试 类 。我是否应该将所有测试 类 放在 web 层中,因为在那里我可以获得上下文。

您可以使用 @SpringBootTest 进行集成测试,但不建议将其用于单元测试,因为 spring 需要一些时间来加载应用程序上下文,它可能会延迟整个测试套件。我发现 this tutorial 很有帮助,可以帮助您确定如何为 spring 的不同模块编写测试。如果这有帮助,请告诉我!

您的服务层应该独立于您的框架。因此,您可能希望重构代码以从服务中删除所有框架依赖项。

完成此操作后,您可以在调用服务/存储库上使用 org.mockito.Mock 注释来创建它们的模拟。

如果你的配置已经独立于框架,那么你也可以模拟它。