Cómo usar Mockito para Kotlin Fragment / Activity para simular kotlinx.android.synthetic views

Tengo un fragment escrito en Kotlin. Importación de vistas de layout usando

import kotlinx.android.synthetic.main.my_fragment_layout. *

En uno de mis methods en la class Fragmento, estoy configurando text para TextView en el layout. Por ejemplo:

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

En mi testing de la unidad Mockito, quiero probar este método. Por ejemplo, si el método anterior se escribió en java, podría probar de la siguiente manera:

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

¿Cómo puedo hacer una implementación similar cuando Fragment está escrito en Kotlin y he importado vistas usando: import kotlinx.android.synthetic.main.my_fragment_layout.

Creo que Robolectric es una herramienta más adecuada para este tipo de testings. Utilizándolo, puede tener una manera más fácil de probar un código con dependencies de Android en JVM.

Por ejemplo, tu testing tendrá el siguiente aspecto:

 @Test fun `should set hello`() { val fragment = YourFragment() fragment.setViews() assertEquals(fragment.myTextView.getText().toString(), "Hello"); }