gpt4 book ai didi

java - 有没有一种更简洁的方法来为单元测试伪造 Analytics API

转载 作者:行者123 更新时间:2023-11-29 08:53:35 27 4
gpt4 key购买 nike

我正在尝试创建一个假的以在我的测试用例中使用来替换谷歌分析类 com.google.api.services.analytics.Analytics。我将使用它对运行的查询进行断言,并返回自定义响应以确保正确处理结果数据。

我无法扩展 Analytics 类,因为它唯一的公共(public)构造函数似乎在做真正的工作。因此,我创建了一个反射(reflect) Analytics 功能的界面。我必须使用 Builder 创建真正的分析类,因此我创建了一个包装类来实现我的 Analytics 接口(interface)并将调用发送到实际交易中。

在这一点上,内部类 Analytics.Data 似乎不是静态的,因此我无法扩展它,因为“由于某些中间构造函数调用,没有类型 Analytics 的封闭实例可用”。

因此,显而易见的解决方案是创建一个自定义接口(interface)来重新创建所有 Analytics.Data 方法,并创建另一个从我的接口(interface)到 Analytics.Data 类的包装器。

以可测试性的名义,这变成了很多无用的类,但我能想到的唯一其他模拟方法是模拟 HttpTransport,它本身是一个巨大的接口(interface),需要对我所做的事情进行非常详细的分析不在乎做出断言。此外,返回值需要有效的 JSON(实际上没什么大不了的)和 header 值。在所有这些工作之后,我的所有测试都将依赖于此 api 客户端库版本的实现。

关于如何干净利落地拦截我的类和谷歌库之间的层,我是否遗漏了任何明显的信息?

最佳答案

我唯一想到的就是不要自己写。 Here is an implementaion .如果你不像我那么懒,你可以使用 mockito 来模拟这个类。 .

关于java - 有没有一种更简洁的方法来为单元测试伪造 Analytics API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21509581/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com