gpt4 book ai didi

java - 使用 SpringJUnit4ClassRunner 和 Mockito 将模拟对象注入(inject)到 Aspect 类中

转载 作者:行者123 更新时间:2023-11-30 07:20:12 26 4
gpt4 key购买 nike

我有一个带有 @RunWith(SpringJUnit4ClassRunner.class) 的测试类,并用它来初始化模拟:

@Before
public void initMocks() {
MockitoAnnotations.initMocks(this);
}

现在我有一个 @Autowired 字段来获取方面建议,但无法注入(inject)模拟。

我的方面:

@Autowired
private MyMock myMock;
@Around("execution(* xxx.MyService.aspectMethod(..))")
public void process(ProceedingJoinPoint joinPoint) throws Throwable {
myMock.mockMethod();
}

我的测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class MyTest {

@Autowired
private MyService myService;
@Mock
private MyMock myMock;
@InjectMocks
private MyAspectClass;

@Before
public void initMocks() {
MockitoAnnotations.initMocks(this);
}


public void shouldXXXX() {

doThrow(Exception.class).when(myMock).mockMethod();
myService.aspectMethod();

....
}

...
}

问题是触发的方面与我 mock 的不同。

最佳答案

答案很简单

@InjectMocks
private MyAspectClass;

关于java - 使用 SpringJUnit4ClassRunner 和 Mockito 将模拟对象注入(inject)到 Aspect 类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37713100/

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