gpt4 book ai didi

Mockito 方法不可访问

转载 作者:行者123 更新时间:2023-12-04 01:31:36 24 4
gpt4 key购买 nike

我使用以下 Maven 行在我的项目中设置了 mockito:

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.5</version>
<scope>test</scope>
</dependency>

我使用 @Mock 没有问题注释,但我无法访问和使用 mockito 方法,例如:
when(someMock.someMethod()).thenReturn();

Eclipse 只是无法识别它们。

请帮忙。

最佳答案

尝试调用Mockito.when(foo.getBar()).thenReturn(baz)Mockito.verify(foo).getBar() ,它不依赖于静态导入。不同于 @Mock注释,从技术上讲是一个类,whenverify是 Mockito 类的静态方法。

一旦你有这个工作,然后尝试大卫提到的静态导入:

import static org.mockito.Mockito.when;   // ...or...
import static org.mockito.Mockito.*; // ...with the caveat noted below.

这将允许您使用 Mockito.when未指定 Mockito类(class)。您也可以使用通配符,但是根据 this SO answer Java docs建议谨慎使用通配符——尤其是因为如果稍后将类似名称的静态方法添加到 Mockito 中,它可能会中断。

添加 import org.mockito.*;是不够的,因为这会添加 org.mockito 中的所有类包,但不是 org.mockito.Mockito 上的方法.

特别是对于 Eclipse,您可以通过将光标放在 when 上来添加静态导入。 Mockito.when 的一部分并按下 Control-Shift-M(“添加导入”)。您也可以添加 org.mockito.Mockito到您的收藏夹(窗口 > 首选项 > Java > 编辑器 > 内容辅助 > 收藏夹 > 新类型),以便所有 Mockito 静态方法都显示在您的 Ctrl-Space 内容辅助提示中,即使您没有专门导入它们。 (您可能还想对 org.mockito.Matchers 执行此操作,它们在技术上可通过继承在 org.mockito.Mockito 上使用,但由于这个原因可能不会出现在 Eclipse 中。)

关于Mockito 方法不可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089770/

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