Ho un @Aspect che tesse l'esecuzione di tutti i metodi di azione del mio controller. Funziona benissimo quando eseguo il sistema, ma non nel test delle unità(). Sto usando un Mockito JUnit nel modo folowing:Spring AOP Aspetto non funzionante con 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();
}
...
}
con qualche @Test utilizzando mockMvc.perform()
.
E il mio aspetto sono:
@Pointcut("within(@org.springframework.stereotype.Controller *)")
public void controller() { }
@Pointcut("execution(* mypackage.controller.*Controller.*(..))")
public void methodPointcut() { }
@Around("controller() && methodPointcut()")
...
Ho lo stesso problema. Ho notato che gli aspetti si attivano se si utilizza l'alternativa '' 'webAppContextSetup''' piuttosto che' '' standaloneSetup''', ma in tal caso i mock non vengono iniettati nel controller. Devo ancora capire come far funzionare entrambi –