这是一个奇怪的问题。我有一些测试失败了,因为正在应用一个方面,所以自动连线服务是空的,坏事接踵而至。问题是我无法理解该方面是如何应用的,因为在测试中,我用 new 构建了被测试的对象。
@RunWith(MockitoJUnitRunner.class)
public class TheControllerTest {
@Spy
private TheController controller = new TheController();
@Mock
private HttpServletRequest request;
@Mock
private ConfigService configService;
....
@Before
public void setup() {
controller.setConfigService(configService);
....
}
@Test
public void testGetAccountsList() throws Exception {
Mockito.when(accountService.getAllAccounts()).thenReturn(Arrays.asList(account1, account2));
Map<String, Object> result = controller.getAccountsList(request);
...
}
}
我显然省略了大量代码,但实际上,我只是不明白,考虑到控制器的实例化方式,它本可以应用建议。
一个可能的原因是,如果你在 Eclipse 中运行它 - 在一个启用了 ajbuilder 的项目中,即使你明确期望通过动态代理使用 Spring AOP,ajbuilder 实际上也会执行编译团队编织,因此即使使用普通的"new",你也会看到建议增强类。你能检查一下吗,解决方法是禁用"ajbuilder" - 这是一个参考 - JUnit 编织错误 春天 AOP 豆