0

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

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

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

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

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

4

1 回答 1

2

不确定具体如何,但Mockito可能是一个不错的选择。
检查此链接以获取详细信息。

于 2012-09-12T09:38:29.063 回答