gpt4 book ai didi

android - 使用 PowerMockRunner 测试 LiveData

转载 作者:行者123 更新时间:2023-12-02 10:10:47 25 4
gpt4 key购买 nike

我的本​​地单元测试始终使用 LiveData。通常,当您尝试在 MutableLiveData 上设置值时,您会得到

java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked.

因为本地JVM无法访问Android框架。我用它修复了这个问题:

@get:Rule
val rule = InstantTaskExecutorRule()

一切都很好,直到我不得不使用 PowerMockito 来模拟 google play 库中的静态方法。因为我添加了

@RunWith(PowerMockRunner::class)
@PrepareForTest(Tasks::class)

在我的测试类声明之上,我开始再次收到此 Looper not mocked 错误。我之前在 MockitoJUnitRunner 中使用过这个规则,一切都很好。

最佳答案

回答有点晚了,但刚刚遇到了同样的问题并解决了!

要使用PowerMockInstantTaskExecutorRule,您需要添加以下注释:

@RunWith(PowerMockRunner::class)
@PowerMockRunnerDelegate(MockitoJUnitRunner::class) //this line allows you to use the powermock runner and mockito runner
@PrepareForTest(UnderTestClass::class)
class UnderTestClassTest {

@get:Rule
var instantExecutorRule = InstantTaskExecutorRule()

关于android - 使用 PowerMockRunner 测试 LiveData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51891873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com