gpt4 book ai didi

java - Mockito 无法为 @Async 方法注入(inject)模拟

转载 作者:行者123 更新时间:2023-12-03 21:24:58 24 4
gpt4 key购买 nike

我有一个类

@EnableAsync
class A {

@Autowired
private SomeService someService;

@Async
public void someMethod() {
this.someSerivice.call();
}

}


class ATest {

@Before
public void before() {
MockitoAnnotations.init(this)
}

@Autowired
@InjectMocks
private A a;

@Mock
private SomeService someService;

@Test
public void someTest() {

}

}

在上面的例子中, someService 应该被 Mockito 模拟。然而,由于 @Async 的存在,它不会被 mock ,我收到了实际的实例。

有没有人遇到过这个?有什么解决办法吗?

最佳答案

您可以在测试用例中手动设置模拟,如下所示

ReflectionTestUtils.setField(a, "someService", someService); 

关于java - Mockito 无法为 @Async 方法注入(inject)模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48890686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com