2016-07-13 14 views
1

私は現在、Androidのデータバインディングを導入した非常に良いプロジェクトに取り組んでいます。すべてがコード内で正常に動作しますが、単体テストではコードをテストできません。私はデータバインディングを模擬するために苦労してい ... Androidのユニットテストとデータバインディング

のsetUp()メソッドに次の行を追加し

PowerMockito.when(DataBindingUtil.classは、 "膨らませる"、インフレータ、anyInt( )、any(ViewGroup.class)、anyBoolean())。then return(viewDataBinding.getRoot());

... thenReturn()不足していることがあります

は、私は次のエラーメッセージがあるでしょう。

ご覧のとおり、私は最後に戻りますが、Mockitoはそれを見ません。

Iコンクリート試験方法にコードを移動しようとした:

org.mockito.exceptions.misusing.WrongTypeOfReturnValue:私は次のメッセージがあります。この場合

@Test 
public void createViewHolder() { 
    .... CODE.... 
when(DataBindingUtil.inflate(inflater,anyInt(),any(ViewGroup.class),anyBoolean())).thenReturn(viewDataBinding); 
... CODE ...} 

。 ViewDataBinding $$ $$ EnhancerByMockitoWithCGLIB f5f40ad1は

ビューを返す必要がありますのinflate() のinflate()で返すことはできません

DataBindingUtil.inflateがコード内でViewDataBindingを返しているので、このメッセージが表示される理由はわかりません。 Androidでデータのバインドを試したことがありますか?

@PrepareForTest({} DataBindingUtil.class) を私は持っていた

PowerMockito.mockStatic(DataBindingUtil.class); 
PowerMockito.mockStatic(ViewDataBinding.class); 

クラスの先頭に: を追加する必要があります。

答えて

0

OK]をクリックして問題は、次のでしたこれらの行をsetUp()に追加します。次いで

:試験自体に

when(DataBindingUtil.inflate(eq(inflater), anyInt(), any(ViewGroup.class), anyBoolean())).thenReturn(viewDataBinding); 
when(viewDataBinding.getRoot()).thenReturn(itemView); 

+0

しかし、私はまだデータバインドされたXMLをテストするための素晴らしいフレームワークを探しています。 – Karoly

関連する問題