模拟单元测试的AOP方法实现

时间:2012-09-12 09:26:49

标签: spring unit-testing

我有一个java应用程序,它有多个模块 - (GWT-)RPC服务,perf-libraryremote-client(我的团队编写/拥有的所有Java代码)。 perf-library包含与Spring AOP方面相关的代码,它主要用于将截获的方法日志推送到数据存储。现在,perf-library依赖于另一个实际维护队列并处理将日志推送到数据存储的远程客户端。因此,在某种程度上,perf-library只是将任务委托给远程客户端。 业务逻辑代码调用具有AOP逻辑的截获方法,因此存在对远程客户端的依赖性。显然,我不想在单元测试中连接到远程客户端。我想我需要模拟连接到远程客户端的方法push()的实现。我无法弄清楚的是如何将模拟实现用于业务逻辑代码包单元测试。

为了澄清事情,我有这样的模块 -

  • RPC service module - 例如方法login()被截获。
  • perf-library - 有方面(拦截login()等方法)和实施来调用remote-client
  • remote-client - 将数据推送到某个数据存储

现在,为了编写RPC服务方法的单元测试,如何获得push()的模拟实现,因为它是perf-library的内部实现。比方说,我有一个接口LogClient(有方法push()),它由两个类实现(一个用于生产,另一个用于测试)。我可以将此Test实现用于perf-library本身的单元测试,但是如何让RPC单元测试使用它。我是Spring的新手,所以不确定是否可以使用Spring或其他任何东西轻松完成。任何帮助都会很好。

注意:我们使用Spring来维护bean和DI。

1 个答案:

答案 0 :(得分:2)

不确定如何,但Mockito可能是一个不错的选择 有关详细信息,请查看此link