我想从Kotlin测试用例中模拟java类的静态方法。
我使用的以下代码不起作用。
它总是称为实际方法。
mockkStatic(Aes::class)
every { Aes.decrypt(PASSWORD, SECRET_KEY) } returns PASSWORD
java类中的实际方法:
public static String decrypt(String text, String secretKey) {}
如果没有其他方法(例如静态方法属于第三方库(,那么最好的策略是在静态方法周围使用包装器对象
class AESWrapper {
fun decrypt(String text, String secretKey) {
return Aes.decrypt(text, secretKey)
}
}
还有其他解决方案,比如PowerMock,但你需要使用PowerMockRunner,我记得这可能会限制你在未来的