【问题标题】:Creating Mockito test case for Spring Boot module为 Spring Boot 模块创建 Mockito 测试用例
【发布时间】:2021-08-01 08:24:33
【问题描述】:

我有一个 spring boot 模块:

Mainproject
-web
-model
-repository
-service

我已经为 web 创建了 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;

}

其次,我有这个配置 bean:

class config{

@value
@value
@value..

}

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

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

【问题讨论】:

    标签: java spring-boot mockito junit5 spring-test


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-05-28
        • 1970-01-01
        • 2020-01-30
        • 1970-01-01
        • 1970-01-01
        • 2021-10-06
        • 1970-01-01
        • 2022-01-08
        • 2022-01-27
        相关资源
        最近更新 更多