为 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
注释来创建它们的模拟。
如果你的配置已经独立于框架,那么你也可以模拟它。
我有一个 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
注释来创建它们的模拟。
如果你的配置已经独立于框架,那么你也可以模拟它。