У меня есть очень простой класс, который проверяет длину строки. Я пытаюсь написать тестовый пример
class UTComponent {
fun isThisValidString(input: String): Boolean {
return (input.length > 2)
}
}
и вот тестовый класс:
@RunWith(PowerMockRunner::class)
@PrepareForTest(UTComponent::class)
class UTComponentTest {
@Mock
lateinit var subject: UTComponent
@Before
fun setup() {
MockitoAnnotations.initMocks(this)
PowerMockito.mockStatic(UTComponent::class.java)
}
@Test
fun testInvalidateIfItValidString() {
Mockito.`when`(subject.isThisValidEmail("")).thenReturn(false)
}
}
но это бросает
org.mockito.exceptions.misusing.MissingMethodInvocationException:
Когда () требуется аргумент, который должен быть «вызовом метода для макета».
Например:
когда (mock.getArticles ()) thenReturn (статьи).
...
Создание метода открытого исправления проблемы, но это то, чего я не хотел делать.
open fun isThisValidEmail(input: String): Boolean {
return (input.length > 0)
}
Обратите внимание, я использую Kotlin, где по умолчанию класс и методы являются окончательными. Но это то, что PowerMockRunner поможет исправить правильно!
Что-нибудь, что мне здесь не хватает?