当前位置: 首页 > 面试题库 >

查找Mockito构造的导入静态语句

罗源
2023-03-14
问题内容

我正试图撞破我和Mockito之间的砖墙。我为试图为Mockito的东西获取正确的 导入静态 语句付出了很多精力。您可能会认为有人会抛出一个表,说
anyInt() 来自 org.mockito.Matcherswhen() 来自 org.mockito.Mockito
等,但这对新手来说太有用了,不是吗?

这种事情,特别是与无数个以星号结尾的导入语句混合使用时,并不总是很有帮助:

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

是的,我知道并且一直在尝试使用 _Eclipse窗口- >首选项-> Java->编辑器->内容辅助->收藏夹_机制。它有帮助,但并没有击中头部。

这个问题的任何答案将不胜感激。

非常感谢,拉斯


问题答案:

问题在于,从Hamcrest和Mockito进行的静态导入具有相似的名称,但分别返回Matchers和实值。

一种解决方法是简单地复制Hamcrest和/或Mockito类并删除/重命名静态函数,以使它们更容易记住并且在自动完成中较少出现。那就是我所做的。

另外,在使用模拟时,我尽量避免assertThat偏爱其他other assertionsverify,例如

assertEquals(1, 1);
verify(someMock).someMethod(eq(1));

代替

assertThat(1, equalTo(1));
verify(someMock).someMethod(eq(1));

如果您从Eclipse中的“收藏夹”中删除类,并键入长名称(例如)org.hamcrest.Matchers.equalTo,然后对“ Add
Import”添加CTRL + SHIFT +
M,则自动完成功能只会显示Hamcrest匹配器,而不会显示任何Mockito匹配器。只要您不混合匹配器,就可以用另一种方式进行。



 类似资料:
  • 本文向大家介绍C#静态构造函数?相关面试题,主要包含被问及C#静态构造函数?时的应答技巧和注意事项,需要的朋友参考一下 最先被执行的构造函数,且在一个类里只允许有一个无参的静态构造函数 执行顺序:静态变量>静态构造函数>实例变量>实例构造函数  

  • 问题内容: 按照标准书,构造函数是用于初始化对象的一种特殊类型的函数。由于构造函数被定义为一个函数,并且内部类函数只能具有两种类型的静态或非静态类型。我怀疑是什么构造函数? 我的疑问是如果构造函数是静态方法,那么我们如何在构造函数内部频繁使用此方法 输出是否意味着构造函数是非静态的? 问题答案: 您的第二个例子很重要。引用在构造函数中可用,这意味着构造函数是针对某个对象(当前正在创建的对象)执行的

  • 在 JDK 1.5 之后增加了一种静态导入的语法,用于导入指定类的某个静态成员变量、方法或全部的静态成员变量、方法。如果一个类中的方法全部是使用 static 声明的静态方法,则在导入时就可以直接使用 import static 的方式导入。 静态导入使用 import static 语句,静态导入也有两种语法,分别用于导入指定类的单个静态成员变量、方法和全部静态成员变量、方法,其中导入指定类的单

  • 问题内容: 静态导入是什么意思,例如: 如何定义这样的软件包?使用静态导入有什么优势? 问题答案: 表示您可以引用静态值而无需使用类名。 例如,考虑以下三个类:

  • 我正在尝试为以下类创建单元测试: 我当前的测试类是: 我可以模拟类的私有字段,但似乎找不到模拟静态方法的方法。这是可能的还是我只是在浪费时间? 我使用Mockito1.10.19和JUnit4进行测试。 我是一个新的对象嘲弄单元测试,所以如果我有什么大错特错,请告诉我! 多谢了。

  • 问题内容: C#是否具有Java静态导入之类的功能? 所以不用像写代码 我会写 而且编译器会知道我的意思是FileHelper中的方法。 问题答案: 从C#6.0开始,这是可能的: 但是,早期版本的C#没有静态导入。 您可以使用该类型的别名来关闭。 或者,将静态方法更改为类型的扩展方法 -然后可以按以下方式调用它: