Cannot find protected method from Abstract class using reflection android unit test

12 views Asked by At

We have class that extends abstract class.

abstract class TestAbstractClass {
    protected fun testProtectedMethod(str : String) {
        //some code
    }
}


class TestSubClass : TestAbstractClass() {
    fun testMethod(str: String){
        testProtectedMethod(str)
    }
}

I want to test method testMethod in class TestSubClass and then verify if method call was done, for testProtectedMethod in abstract class TestAbstractClass

    @Test
    fun `verify testProtectedMethod  called once`() {
   
        val testAbstractClass = TestAbstractClass.javaClass
        val method = testAbstractClass.getDeclaredMethod("testProtectedMethod", String::class.java)
        method.isAccessible = true

      
        testSubClass.testMethod(str)

      
        verify(exactly = 1) { method.invoke(testSubClass, str) }
    }

Please let me know what needs to be corrected here to work this testcase.

0

There are 0 answers