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.