问题标签 [springmockito]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
461 浏览

java - mockito spy 不适用于工厂 bean 方法

我有一个正在为其编写单元测试的 springboot。有一个 factoryBean,我在运行时从中获取服务对象。我想测试是否调用了此服务对象上的特定方法。这是应用程序代码

这是我的单元测试

测试失败,当我通过调试器运行时,我看到调用了句柄。那么这里有什么问题呢?

编辑

通过此更改,工厂 bean 被模拟,但在 AppClient 中的 secretService 为空。也就是说,secretService 没有被存根。通过调试器进行测试。

0 投票
1 回答
61 浏览

spring - 想在restcontroller junit测试中模拟ValidationofToken

需要跳过控制器中令牌 ID 登录的验证以进行单元测试

由于我正在测试控制器本身,因此不确定要使用什么 Mock 或 spy



}

作为间谍的基本控制器似乎不起作用,有没有其他方法可以解决这个问题。请帮忙

0 投票
1 回答
406 浏览

java - 测试 Spring Boot 应用程序的最佳方法是什么?有服务器参与还是通过创建模拟环境?

我想测试我的 Spring Boot 应用程序的层 - 服务、数据、控制器。

我知道使用 Spring Boot,我们可以在服务器参与或不参与的情况下测试这些(通过创建模拟环境)。所以我的问题是——测试这些层的最佳实践是什么?或者它是否取决于我们要测试的特定层?

0 投票
1 回答
89 浏览

spring - Spring单元测试中的模拟bean未连接到AutoWired依赖项

我正在尝试为具有 Autowired 依赖项的类编写单元测试。

我的单元测试类来测试 getToken() 方法

当我运行这个测试时,有一个 NullPointerException getToken()User它说serviceContext变量为空。

为什么我在测试中创建的模拟 bean 不能自动连接到 User 类中的依赖项?

我也试过这个测试代码 -

这也给出了一个 NullPointerException 表示类中的serviceContext依赖User项为空。

如何使用 bean 对我的 User 类方法进行单元测试mocked ServiceContext并将其连接到User对象?

我正在使用基于注释的弹簧配置,并且不想启动弹簧容器来测试它。

为了运行我的应用程序,我正在使用这个 -

我需要在我的 中添加这个类@SpringBootTest吗?

0 投票
1 回答
1072 浏览

spring-boot - 如何在@WebMvcTest 的服务层上模拟自动装配的bean

我正在 Spring boot gradle 应用程序中测试 REST API,我使用 @MockBean 的模拟服务返回 null。如果服务类中有一些自动装配的 bean(我使用了构造函数注入),则此模拟服务返回 null。

这是示例代码(未编译,仅用于理解)

当我运行这个测试时,我得到以下输出(如果我的服务不需要另一个 bean,我得到预期的输出)

由于此响应,我在 .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)); 线上面临问题。当我检查响应正文时(因为正文也是空的)

重现问题的示例项目在这里

0 投票
1 回答
140 浏览

java - 如何为静态 void 方法实现 doNothing()?

我试图模拟一种静态 void 方法,我尝试了 PowerMock 但总是得到 NullPointer 异常。

我们正在尝试模拟以下调用 -

主要课程是 -

我试图在我的测试课中以这种方式模拟通话 -

还要提到的是,SampleClass.class 不是我们代码的一部分,我们已将此外部类导入我​​们的代码库以执行某些任务。

0 投票
1 回答
3682 浏览

java - Spring Boot - 模拟拦截器

我在测试休息请求时遇到问题。然而,我的一个拦截器正在拦截测试。

简而言之,我想模拟拦截器的行为而不是调用实际的实现。

为简单起见,这里的问题是一个简单的 Get 请求

使用简单的拦截器和配置文件

测试的目的是调用休息端点并模拟拦截器

当我运行这个测试时,^LoggingInterceptor仍然被调用。

如何将测试配置为具有模拟拦截器?

0 投票
3 回答
5520 浏览

java - @InjectMocks 通过构造函数和设置器注入 @MockBean 无法正常工作

我已经尝试了很多次,@RunWith(SpringJUnit4ClassRunner.class) 我试图用 getter 和 Constructor 注入创建一个测试用例来对抗一个类。当我使用@MockBeansetter注入,构造@Mock函数注入以及使用bean注入时。如果我评论构造函数注入不起作用。现在所有的 bean 都被完美地注入了,但是beans(Contructor injection ) bean 在调用时模拟了 mthods 不能正常工作。@RunWith(SpringJUnit4ClassRunner.class)MockitoAnnotations.initMocks(this);MockitoAnnotations.initMocks(this);@Mock

我的测试班是

注入工作正常,问题属于我使用的 bean 的模拟方法@Mock工作不正常意味着mockB.getValue()重新mockC.getValue()调整nullmockA.getValue()在我测试运行时正确返回。

0 投票
1 回答
498 浏览

java - Spring MVC - 使用 @WebMvcTest 测试控制器时出现 @EnableGlobalMethodSecurity 错误 404

我们正在尝试向我们的 Spring 项目添加单元测试Controllers(顺便说一句,集成测试工作正常),但是我们遇到了一个非常奇怪的行为,当我们添加配置时@EnableGlobalMethodSecurity(使用 JSR-250 注释)如果控制器实现了一个接口(无论接口)Controller,Spring 应用程序上下文都不包含“请求处理程序”(我在方法上检查了它org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.processCandidateBean(String beanName):),也就是说,在控制器(@PostMapping,...)中定义的请求映射没有注册为潜在位置,但是如果接口被删除,然后控制器和路径找到没有问题。

这是我的控制器(简化版),界面简单MyInterface

这是测试类(如果我删除@EnableGlobalMethodSecurity配置类一切正常):

我不明白发生了什么,我试图找到一个基于注释 JSR-250(@RollesAllowed)的具有安全性的控制器中的单元测试示例,但我没有发现任何有用的东西,无论如何这个问题听起来(到我)到一个错误,但我不确定,所以欢迎任何帮助。

库版本:

  • Spring Boot 版本:2.2.2
  • 弹簧核心:5.2.1
  • 模拟核心:3.1.0
0 投票
1 回答
88 浏览

spring - JUnit 5 Search Rest api 测试

如何使用 JUnit 5 测试 findByTargetProject 方法。

我试过这种方式,但我得到 404 响应。