gpt4 book ai didi

android - 在测试期间使用 Mockito 模拟我类的一种方法

转载 作者:太空狗 更新时间:2023-10-29 15:51:45 25 4
gpt4 key购买 nike

我正在尝试使用 JUnit 和 Mockito 为 Android 编写单元测试(检测)。

一些上下文:我正在测试一个严重依赖于 View 的类,我不能/不想在测试期间实际膨胀 View 。有一次,我的待测试类想要使用 View 的宽度,我已经定义了一个(公共(public))方法,该类正在使用该方法在运行时获取宽度 (getWidth()) .

在我的测试中,我只想使用 Mockito 模拟 getWidth() 方法。 (同时让类(class)的其他人以同样的方式行事)。澄清一下:我的类中的一个方法调用 getWidth(),我希望它在测试期间返回一个模拟值。

所以我尝试使用 Mockito.spy() 方法实例化类,但我不知道这是否是正确的方法(它不起作用)或者是否有其他方法我应该做的。

我当前的代码:

mGraph = Mockito.spy(new Graph(xAxis, leftAxis, null, false, new Graph.Style(), curve));
Mockito.when(graph.getGraphWidth()).thenReturn(400);

我收到以下错误消息,但我不知道它是否相关或只是另一个错误:

java.lang.IllegalArgumentException: dexcache == null(并且找不到默认值;考虑设置“dexmaker.dexcache”系统属性)

最佳答案

我通过更改我的 build.gradle 解决了这个问题

testCompile ('junit:junit:4.12',
'com.google.dexmaker:dexmaker-mockito:1.0',
'com.google.dexmaker:dexmaker:1.0')

对此

testCompile ('junit:junit:4.12',
'org.mockito:mockito-core:1.9.5')

我猜这可能是因为 dex 依赖项只能与 androidTestCompile 标签一起使用。

关于android - 在测试期间使用 Mockito 模拟我类的一种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33802016/

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