2017-10-26 43 views
1

私はKotlinで書かれた断片を持っています。私はMockitoをKotlinの断片/アクティビティに使用する方法kotlinx.android.synthetic views

輸入kotlinx.android.synthetic.main.my_fragment_layoutを使用してレイアウトビューをインポートする。*フラグメントのクラスで私の方法の一つで

、私はレイアウトでのTextViewのテキストを設定しています。例:

fun setViews() { 
    myTextView.text = "Hello" 
    // In Java I would have used: 
    // (getView().findViewById(R.id.myTextView)).setText("Hello"); 
} 

私のMockitoユニットテストでは、このメソッドをテストしたいと思います。上記の方法は、Javaで書かれていた場合 例えば、私は次のようにテストすることができ:

public void setViewsTest() { 
    // Mock dependencies 
    View view = Mockito.mock(View.class); 
    TextView myTextView = Mockito.mock(TextView.class); 
    when(fragment.getView()).thenReturn(view); 
    when(view.findViewById(R.id. myTextView)).thenReturn(myTextView); 

    // Call method 
    fragment.setViews(); 

    // Verify the test 
    verify(myTextView).setText("Hello"); 
} 

を断片はKotlinで書かれており、私が使用してビューをインポートしたとき、私は同様の実装を行うことができます方法: 輸入kotlinx.androidを。 synthetic.main.my_fragment_layout。

答えて

0

Robolectricは、この種のテストのためのより適切なツールだと思います。これを使用すると、Android依存のJVMを使用してコードを簡単にテストすることができます。

@Test 
fun `should set hello`() { 
    val fragment = YourFragment() 

    fragment.setViews() 

    assertEquals(fragment.myTextView.getText().toString(), "Hello"); 
} 

たとえば、あなたの試験は次のようなもののようになります。

関連する問題