我在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是非空和有效的。
怎么回事?
在JUnit测试中使用Android运行时库有什么问题吗?
谢谢!
光伏
发布于 2021-09-24 20:18:16
5.5年后,我看到有人投了反对票。
回答我自己的问题。
根据我的经验和https://developer.android.com/training/testing/unit-testing/local-unit-tests#error-not-mocked
默认情况下,单元测试中的任何Android调用都会引发异常。
这是故意强迫你去嘲笑你所称的任何东西。
您可以在模块的build.gradle中使用以下内容更改此默认行为:
android {
...
testOptions {
unitTests.returnDefaultValues = true
}
}这样做将导致任何Android调用都是一个始终返回null或0的无操作。
这一定是我5.5年前所做的事。
在开发测试时,这是可以的,但不建议永远留在这里。
https://stackoverflow.com/questions/34618924
复制相似问题