如何从kotlin模拟静态java方法,mockkStatic不工作



我想从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,我记得这可能会限制你在未来的

相关内容

最新更新