gpt4 book ai didi

android - Robolectric 3 的图书馆资源 - JodaTime

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:46:34 25 4
gpt4 key购买 nike

在 Robolectic 3.0-rc3 中使用库时出现 ResourceNotFoundException。该资源在 build.gradle 中声明为 compile 'net.danlew:android.joda:2.8.0'。具体来说,这是 Joda-Time 的 Android 端口。

android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f0501da
at org.robolectric.shadows.ShadowResources.checkResName(ShadowResources.java:343)
at org.robolectric.shadows.ShadowResources.getResName(ShadowResources.java:333)
at org.robolectric.shadows.ShadowResources.openRawResource(ShadowResources.java:382)
at android.content.res.Resources.openRawResource(Resources.java)
at net.danlew.android.joda.ResourceZoneInfoProvider.openResource(ResourceZoneInfoProvider.java:120)
at net.danlew.android.joda.ResourceZoneInfoProvider.<init>(ResourceZoneInfoProvider.java:39)

应用类:

@Override
public void onCreate() {
super.onCreate();
JodaTime.init(this);
}

我的测试类:

@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class,
sdk = 21)
public class MyTest {

@Before
public void setup() {

}

@Test
public void myTest() {
//Test my stuff
}

最佳答案

您需要使用 Robolectric 运行时环境在测试中初始化库。所以将其添加到您的 setup() 方法中。

JodaTimeAndroid.init(RuntimeEnvironment.application);

所以你的测试看起来像这样:

@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21)
public class MyApplicationTest {

@Before
public void setup() {
JodaTimeAndroid.init(RuntimeEnvironment.application);
}

@Test
public void myTest() {
//Test my stuff
DateTime aDateTime = new DateTime();
DateTime bDateTime = new DateTime(aDateTime);
assertEquals(aDateTime, bDateTime);
}
}

关于android - Robolectric 3 的图书馆资源 - JodaTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30923150/

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