使用Mockk模拟语言环境

时间:2019-08-16 08:37:01

标签: android mockk

我正在尝试使用Mockk模拟对Locale.getDefault()的调用,但是我似乎无法使其正常工作。有人成功使用Mockk来模拟Locale吗?

我非常简单的测试班

@Test
fun testName() {
    val defaultLocale = mockk<Locale>()

    mockkStatic(Locale::class)

    every { Locale.getDefault() } returns defaultLocale
}

我得到的错误

*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844

1 个答案:

答案 0 :(得分:0)

如果要测试各种语言环境,则无需模拟语言环境,只需在运行每个测试之前进行设置即可。

Locale locale = new Locale("en-US"); 
Locale.setDefault(locale);

科特琳

var locale = Locale("en-US")
Locale.setDefault(locale)