2

我遇到了一个奇怪的情况。也许有人知道为什么会发生这种情况。我MyActivitymain_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参数。那么为什么会抛出这个异常呢?...

4

0 回答 0