2012-09-12 66 views
0

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

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

  • RPC service module - 例如方法login()被拦截。
  • perf-library - 有问题(拦截像login()方法),并实现调用remote-client
  • remote-client - 将数据推送到一些数据存储现在

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

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

回答

2

不确定究竟如何,但Mockito可以是一个不错的选择。
有关详细信息,请检查此link

+0

我听说过像Mockito这样的嘲讽图书馆,但你能详细解释一下吗?如何注入模拟实现并在不同的库中使用它? – Swapnil

+0

@SwapnilS:我在我的答案中添加了链接。 – xyz