我遇到了一个奇怪的情况。也许有人知道为什么会发生这种情况。我MyActivity
在main_graph.xml中添加了一个参数- isRecommended
- 具有默认值 ( false
):
<activity
android:id="@+id/myActivity"
android:name="com.mydomen.MyActivity"
android:label="MyActivity"
tools:layout="@layout/my_activity">
<argument
android:name="contentItems"
app:argType="com.myActivity"
android:name="com.mydomen.MyItem[]" />
<argument
android:name="myMetadata"
android:defaultValue="@null"
app:argType="com.mydomen.MyMetadata"
app:nullable="true" />
<argument
android:name="isRecommended"
android:defaultValue="false"
app:argType="boolean" />
</activity>
并且一切正常,但是我的一个单元测试失败了-即,NullPointerException
在测试中抛出了一个带有此验证的行:
@Test
fun `check onSomeMethodClicked`() {
...
myViewModel.testAction()
verify(exactly = 0) {
navigationObserver.onChanged(
NavigationCommand.To(
MainGraphDirections.actionGlobalMyActivity(
listOf<MyItem>()
)
)
)
}
}
java.lang.NullPointerException
at com.mydomen.MainGraphDirections$ActionGlobalMyActivity.getIsRecommended(MainGraphDirections.java:371)
at com.mydomen.android.MainGraphDirections$ActionGlobalPlayerActivity.hashCode(MainGraphDirections.java:412)
at com.mydomen.android.common.base.navigation.NavigationCommand$To.hashCode(NavigationCommand.kt)
虽然生成的类中只有一种actionGlobalMyActivity
方法:MainGraphDirections
@NonNull
public static ActionGlobalMyctivity actionGlobalMyActivity(@NonNull MyItem[] myItems) {
return new ActionGlobalMyActivity(myItems);
}
没有方法也接受isRecommended
参数。那么为什么会抛出这个异常呢?...