我有一个非常简单的类,可以验证字符串的长度。我正在尝试编写一个测试用例
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: when()需要一个参数,该参数必须是“模拟的方法调用”。 例如: when(mock.getArticles())。thenReturn(articles); ...
使方法公开修复问题,但这是我不想做的事情。
open fun isThisValidEmail(input: String): Boolean {
return (input.length > 0)
}
请注意,我使用的是Kotlin,默认情况下,类和方法是最终的。但这 PowerMockRunner 可以帮助解决问题!
我这里想念什么吗?