Hi I am testing my viewholder with view binding. B...
# mockk
v
Hi I am testing my viewholder with view binding. But i am getting error
Copy code
private lateinit var selectorViewHolder: SelectorViewHolder<Area>

    @MockK lateinit var binding: SelectorDialogBinding
    @MockK lateinit var mockRootView : View
    @MockK lateinit var mockTextView: TextView

    @Before
    fun setUp() {
        MockKAnnotations.init(this, relaxed = true)
        binding = SelectorDialogBinding.bind(mockRootView)
        selectorViewHolder = spyk(
            SelectorViewHolder(binding)
        )       setupMockView()
    }

    private fun setupMockView() {
        every { mockRootView.findViewById<TextView>(R.id.text) } returns mockTextView
      }

    @Test
    fun `bindItem`() {
        ....
    }
My view holder is genric type
Copy code
class SelectorViewHolder<T : Any>(val binding: SelectorDialogBinding) : RecyclerView.ViewHolder(binding.root) {

    fun bindItem(
        item: T,
      ) {
       ........
        }
    }
}
it gives error
android.view.View cannot be cast to android.widget.LinearLayout
java.lang.ClassCastException: android.view.View cannot be cast to android.widget.LinearLayout
at com.testing.app.databinding.SelectorDialogBinding.bind(SelectorDialogBinding.java:73)
my layout SelectorDialog
Copy code
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="<http://schemas.android.com/apk/res/android>"
    xmlns:tools="<http://schemas.android.com/tools>"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/text"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        tools:text="VM" />

</LinearLayout>