2017-10-26 5 views
1

나는 Kotlin로 쓰여진 단편을 가지고 있습니다. 내가Mockito를 Kotlin 단편/활동에 사용하는 방법 kotlinx.android.synthetic views

수입 kotlinx.android.synthetic.main.my_fragment_layout를 사용하여 레이아웃 뷰를 가져올 수 있습니다. * 조각 클래스 내 방법 중 하나에서

, 나는 레이아웃에 텍스트 뷰 텍스트를 설정하고있다. 예 :

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"); 
} 

을 조각은 코 틀린로 작성하고 내가 사용 전망을 가져온 때 비슷한 구현을 할 수있는 방법 : 수입 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"); 
} 
:

예를 들어, 테스트는 다음과 같이 모양을

관련 문제