0

这是一个奇怪的。我有一些测试失败,因为正在应用一个方面,所以自动装配服务为空,随之而来的是坏事。问题是我无法理解这个方面是如何被应用的,因为在测试中我用 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);
...    
}
}

我显然省略了很多代码,但实际上,我只是不明白,鉴于控制器是如何实例化的,它本可以应用建议。

4

1 回答 1

0

一个可能的原因可能是如果您在 Eclipse 中运行它 - 在启用了 ajbuilder 的项目中,即使您明确期望 Spring AOP 通过动态代理,ajbuilder 实际上会执行编译团队编织,因此您会看到建议增强类即使使用正常的“新”。你能检查一下吗,解决方法是禁用“ajbuilder” - 这是一个参考 - JUnit weaving wrong Spring AOP Bean

于 2012-06-22T19:57:08.923 回答