我在Spring测试中使用@主
和@Profile
来模拟bean:
@Profile("test")
@Configuration
public class TestBeanConf {
@Bean
@Primary
public UserService userService() {
UserService userService = Mockito.mock(UserService.class);
TokenValidationUrl validation = new TokenValidationUrl();
validation.setValid(true);
validation.setUid("123456789");
Mockito.when(userService.tokenValidation("23456")).thenReturn(validation);
return userService;
}
但是UserService
bean的其他方法返回null
,我如何监视真正创建的bean,而只监视mocktokenValidation
方法?
为了监视UserService
bean的一种方法,在构建该bean的过程中,我们通过将UserService的现有实例作为参数发送,并使用Mockito的监视功能,从Spring上下文自动连接UserService的现有实例:
@Profile("test")
@Configuration
public class TestBeanConf {
@Bean
@Primary
public UserService userServiceTest(UserService userService) {
UserService userService = Mockito.spy(userService);
TokenValidationUrl validation = new TokenValidationUrl();
validation.setValid(true);
validation.setUid("123456789");
Mockito.when(userService.tokenValidation("23456")).thenReturn(validation);
return userService;
}
包括StackTrace。我尝试用这个when(requestBodySpec.body(any())替换body mock。然后返回(requestHeadersSpec);也但是没有用。我认为问题在于模仿单声道。只是反对。不确定可能是什么问题。如果有不同的方法来模拟单声道。请分开反对并通过,请让我知道。
这是这个问题的后续问题。 我的问题是:我将我们的环境升级到了JUnit、Mockito的较新版本……不幸的是,我是用最新的IBM JRE运行本地测试的。然后我们发现,在我们的构建环境中,我们所有的Mockito测试现在都失败了
我想在同一个类中模拟一个void方法,这个方法正在用mockito测试中。我可以用@spy注释not void方法,然后使用下面的代码返回我想要的数据。 每个依赖项都是用@mock模拟的。
当我试图模仿javax.ws.rs.core 时,我得到一条错误消息: 无法创建JAX-RS运行时委托 为什么会发生这种情况? 但是,当我试图嘲笑HttpServlet响应时,这是没有问题的!
我想在我的发票类中存根methot generateFerenceNumber():
我提到了这个答案,我该如何模拟java。时间本地日期。now()关于如何模拟我的LocalDateTime。now()调用。我基本上遵循了所有步骤,但只使用了LocalDateTime而不是LocalDate。 我的代码的功能是这样的,它应该只在一小时的第15或45分钟运行。因此,我将LOCAL\u DATE\u TIME静态变量设置为: 然后在我的@Before测试方法中,我有以下内容: 这是2