gpt4 book ai didi

android - Robolectric 自定义阴影对象

转载 作者:行者123 更新时间:2023-11-29 14:07:03 24 4
gpt4 key购买 nike

OOTB,Robolectric不太支持语言环境。因此,如果您的应用程序依赖于区域设置(很多应用程序如果它们是正确的 i18n'nd 的话)这可能是一件非常痛苦的事情。长话短说,我创建了自己的 ShadowFooGeocoder 和 ShadowFooAddress 来模拟我想要的语言环境。它们基本上是现有阴影的重新实现。

但是,当我这样绑定(bind)我的类时:bindShadowClass(ShadowFooGeocoder.class),效果很好。在运行时,返回正确的影子。问题是我想在此对象上设置模拟,但我不确定如何设置。 shadowOf(instance) 其中实例是注入(inject)的 GeoCoder 返回 ShadowGeoCoder。我试过直接使用 ShadowWrangler,但这也会返回 ShadowGeocoder。

我怎样才能进入我通过 bindShadowClass(...) 调用绑定(bind)的阴影类,以便我可以设置我的期望(模拟)?

注意:这是对 Robolectric 组上同一问题的转发 here .我在这里发帖是因为我让任何人在小组中回答问题的成功率相当低。我希望在这里能有更好的结果。

最佳答案

我在这里基本上完成的是像这样扩展 ShadowGeocoder:

@SuppressWarnings({"UnusedDeclaration"})
@Implements(Geocoder.class)
public class ShadowFooBarGeocoder extends ShadowGeocoder {
// implementation stuff
}

然后我将使用 bindShadowClasss(...) 绑定(bind)它,当我通过静态 shadowOf(...) 调用检索阴影时,我得到一个“ShadowGeocoder”,它是 ShadowFooBarGeocoder 的一个实例。然后我将其转换为该类型并执行我需要的任何工作。

关于android - Robolectric 自定义阴影对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6272105/

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