我在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年前
这在开发测试时是可以的,但不建议永久离开。