使用对象树/网络模拟(在 java 中)

Mocking (in java) with object tree / net

理论场景: 我们有一个使用 spring 批处理实现的接口,当它被触发时,它会从服务中获取一个复杂的对象树。服务类型无关,它是一个 pojo 和 return 普通对象。它被转换成我们的领域模型,然后使用某些业务逻辑计算来执行。使用另一项服务将数据发送到下一个系统。

所以我想测试上面提到的转换和业务逻辑,并且有相当多的测试用例已经存在于 dbs 中(在第一个服务之后)。这是模拟的典型案例。我可以使用众多模拟框架之一(mockito 等)来模拟传入和传出服务。我想知道的是这种情况下的最佳实践:我如何捕获服务调用的结果(即原始对象形式的结果)并将它们以序列化、编组的形式存储,然后我可以在模拟后面使用它们?

这一定是很常见的场景吧?我在事物的序列化方面发现了一些点点滴滴,如 XMLEncode、Xstream、simple 等,以及不太符合要求的各种测试框架,如 fitnesse 等。我过去看过并使用过模拟框架,但我还没有发现任何东西可以将这两个主题结合在一起。

不确定我是否理解您序列化服务参数的用例。使用 Mockito,您可以非常轻松地从第一个服务提供输入,捕获发送到第二个服务的结果,并在 Java.

中对模型进行断言

ArgumentCaptor