这是一个奇怪的。我有一些测试失败,因为正在应用一个方面,所以自动装配的服务是空的,随之而来的是坏事。问题是我无法理解如何甚至被应用的方面,因为在测试中我使用new构建了测试对象。</ p>
@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);
...
}
}
我显然省略了大量的代码,但实际上,我只是不明白,如果实例化控制器,它可能已经应用了建议。
答案 0 :(得分:0)
一个可能的原因可能是如果你在Eclipse中运行它 - 在启用了ajbuilder的项目中,即使你明确期望Spring AOP通过动态代理,ajbuilder实际上会执行编译团队编织,因此你会看到增强的建议甚至使用普通的“新”课程。你可以检查一下,解决方法是禁用“ajbuilder” - 这是一个参考 - JUnit weaving wrong Spring AOP Bean