Mam @Aspect, który splata wykonanie wszystkich moich metod działania kontrolera. Działa to dobrze po uruchomieniu systemu, ale nie w testowaniu jednostkowym(). Używam Mockito się JUnit w folowing sposób:Aspekt wiosny AOP nie działa przy użyciu Mockito
...
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:**/spring-context.xml")
@WebAppConfiguration
public class UserControllerTest {
private MockMvc mockMvc;
@Mock
private RoleService roleService;
@InjectMocks
private UserController userController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
...
mockMvc = MockMvcBuilders.standaloneSetup(userController).build();
}
...
}
niektóre @Test użyciu mockMvc.perform()
.
A moja Aspect są:
@Pointcut("within(@org.springframework.stereotype.Controller *)")
public void controller() { }
@Pointcut("execution(* mypackage.controller.*Controller.*(..))")
public void methodPointcut() { }
@Around("controller() && methodPointcut()")
...
mam ten sam problem. Zauważyłem, że aspekty się uruchamiają, jeśli użyjesz alternatywnego '' 'webAppContextSetup''' zamiast' '' standaloneSetup''', ale w tym przypadku mocks nie zostaną wprowadzone do kontrolera. Muszę jeszcze dowiedzieć się, jak uzyskać oba działające –