2016-03-08 92 views
2

我正在尝试做一个集成测试。这是我的部件:我应该如何测试一个方面的方法?

UsersService

@ManageSession 
public List<T> get() { 
    //... 
    return something; 
} 

ManageSessionAspect

@Autowired 
AuthService authService; 

@Before("manageSessionMethod()") //methods annotated with @ManageSession 
public void doSomething() { 
    authService.doSomething(); 
} 

我需要测试UsersService.get()方法。但我想禁用该方面,或者我希望能够嘲笑其中的AuthService

我已经使用is()切入点试过,但我得到:

如果()切入点标志不是由Spring支持。

你能帮助我吗?谢谢。

回答

1

这是一个完美的使用案例春季配置文件。您可以定义配置文件并将您的配置类绑定到这些配置文件。只有配置文件处于活动状态时,才会激活与配置文件关联的配置。有关更多详细信息,请参阅我对有关问题的回答:A: How to mock bean and avoiding NoUniqueBeanDefinitionException。您将需要定义一个配置文件(例如:测试或集成测试)并在配置类中使用该配置文件来为您的AuthService提供模拟实施。作为一个附注,我强烈建议你使用AspectJ(最好是编译时编织)而不是Spring AOP,因为它更强大。

相关问题