Tôi có @Aspect để thực hiện tất cả các phương thức hành động của bộ điều khiển của tôi. Nó hoạt động tốt whan tôi chạy hệ thống, nhưng không phải trong thử nghiệm đơn vị(). Tôi đang sử dụng Mockito một junit theo cách folowing:Spring AOP Aspect không hoạt động khi sử dụng 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();
}
...
}
với một số @Test using mockMvc.perform()
.
Và Aspect của tôi là:
@Pointcut("within(@org.springframework.stereotype.Controller *)")
public void controller() { }
@Pointcut("execution(* mypackage.controller.*Controller.*(..))")
public void methodPointcut() { }
@Around("controller() && methodPointcut()")
...
Tôi có cùng một vấn đề. Tôi đã nhận thấy rằng các khía cạnh làm cháy nếu bạn sử dụng '' 'webAppContextSetup''' thay vì' '' standaloneSetup''' nhưng trong trường hợp đó các mocks không được tiêm vào bộ điều khiển. Tôi chưa biết làm thế nào để có được cả hai làm việc –