Robolectric でいくつかのコードをテストしようとしています。
私のコードはレイアウトを膨らませてから、このレイアウトを呼び出しfindViewById
てビューを取得しようとします。レイアウトのインフレーションは正常に機能します。ただしfindViewById
、このレイアウトでは常に null を返します。
デバッガーで、膨張したレイアウトのすべての (シャドウ) 子ビューが存在し、それらの属性が設定されていることがわかります。しかし、すべての子の id は 0 に設定されています。なぜですか? 何か不足していますか?
デバイスまたはエミュレーター (robolectric なし) の実際のコードは正常に動作しますが、robolectric で実行しようとすると、説明どおりに失敗します。
基本的に私のコードは次のようになります。
LayoutInflater inflater = (LayoutInflater) Robolectric.application.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.timeline_list_item, null);
TextView view = (TextView) layout.findViewById(R.id.listItem_date);
//why is view null here!
view.setText("test");
よろしくフランク