在应用上下文之外应用的弹簧方面(在存根单元测试中)



这是一个奇怪的问题。我有一些测试失败了,因为正在应用一个方面,所以自动连线服务是空的,坏事接踵而至。问题是我无法理解该方面是如何应用的,因为在测试中,我用 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 豆

相关内容

  • 没有找到相关文章

最新更新