Android JUnit3测试ParcelUuid getUuid()为非null UUID返回null



我在Android JUnit3单元测试中有以下代码:

public void testWTF()
{
    UUID uuidExpected = UUID.fromString("00001234-0000-1000-8000-00805f9b34fb");
    ParcelUuid parcelUuid = new ParcelUuid(uuidExpected);
    UUID uuidActual = parcelUuid.getUuid();
    Assert.assertEquals("uuidExpected != uuidActual", uuidExpected, uuidActual);
}

getUuid()返回null,但传递给ParcelUuid的UUID不是null且有效。

什么东西?

在JUnit测试中使用Android运行库是否有问题?

谢谢!

Pv

5.5年后,我看到有人投了赞成票。

回答我自己的问题。

根据我的经验和https://developer.android.com/training/testing/unit-testing/local-unit-tests#error-非模拟

默认情况下,单元测试中的任何Android API调用都会引发异常
这是故意强迫你嘲笑任何你称之为的东西
您可以在模块的build.gradle:中使用以下内容更改此默认行为

android {
    ...
    testOptions {
        unitTests.returnDefaultValues = true
    }
}

这样做将导致任何Android API调用都是no-op,始终返回null或0。
这一定是我在做的事情>5.5年前
这在开发测试时是可以的,但不建议永久离开。

相关内容

最新更新