- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近在我的项目中将 Maven Surefire 插件升级到版本 v2.14.1(从 v2.6)。升级后,Mockito 开始在所有 JUnit 测试中抛出 InvalidUseOfMatchersException,其中在“接口(interface)”或“抽象类”上调用 Mockito.mock() 方法。相同的单元测试在通过 Eclipse 执行时工作正常,但在使用 Maven 构建时总是失败。
Here are few examples of calls that are failing:
i) DataSource dataSource = Mockito.mock(DataSource.class);
ii) DatabaseMetaData metaData = mock(DatabaseMetaData.class);
iii) ResultSet rs = mock(ResultSet.class);
最佳答案
InvalidUseOfMatchersException
几乎从不由调用 Mockito.mock()
引起;相反,对 Mockito.mock()
的调用告诉 Mockito validate that it's not in the middle of something ,此时它确定应该抛出 InvalidUseOfMatchersException
。您的错误可能与 Maven/Surefire 有关,因为它以与 Eclipse 不同的顺序执行您的测试方法,或者因为 Maven 重用了 Eclipse 没有的 JVM。
Mockito 匹配器是返回虚拟值的静态函数(但会 secret 记录它们与 Mockito 的调用)。在内部,Mockito 保留 a stack of previously-called matchers ,每个线程一个,因此如果您在测试方法的末尾调用 Matcher,它将徘徊以污染同一线程中的下一个测试方法。
确定这一点的最简单方法是调用电话 Mockito.validateMockitoUsage()
在您的 tearDown
方法 (JUnit3) 或 @After
方法 (JUnit4) 中。这将导致滥用 Mockito 的测试方法在那里失败,而不是在运行的任何下一个方法中。
至于实际的 Matcher 滥用?仔细检查每次使用 org.mockito.Mockito
或 org.mockito.Matchers
中的匹配器时,您实际上是在匹配函数中的每个参数;我在 separate SO answer 中查看了原因.在调用 when
或 verify
(这会干扰 Mockito 的静态魔法)或尝试 stub 或验证任何标记为 的方法时,要特别小心调用其他模拟final
(它将静默失败,因为 VM 调用实际实现)。
希望对您有所帮助!
关于java - 模拟接口(interface)/抽象类时 Mockito InvalidUseOfMatchersException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16325523/
我的测试用例出现以下错误: junit.framework.AssertionFailedError: Exception occured : org.mockito.exceptio
我正在使用 java spring boot 并尝试在单元测试中为 AWS s3 存储桶编写模拟。以下是在执行测试时导致一些问题的代码 @Mock AmazonS3 s3client;
我已经尝试调试这段代码一段时间了,但仍然没有成功。我继续专门为此代码抛出“InvalidUseOfMatchersException”: 对于设置: service = mock(Se
import org.mockito.Mockito; public class Scratch2 { public static class Foo { } public interface Cus
我在使用mockito 2.23.4、junit4 和springrunner 测试方法时遇到困难。我不断收到 InvalidUseOfMatchersException 即使代码对我来说看起来非常好
我目前在使用 Mockito 时遇到问题。但首先这是我的代码,它创建了 Mockito 提示的模拟: @Test public void testRestEndpointGeneration(
我有这个 TestNG 测试方法代码: @InjectMocks private FilmeService filmeService = new FilmeServiceImpl(); @Mock p
我正在使用mockito,并且面临与匹配器参数相关的问题。 我遇到了这个异常: org.mockito.exceptions.misusing.InvalidUseOfMatchersExceptio
我正在学习 Android MVP 架构并尝试使用 Mockito/JUnit 测试一些方法。我正在从本教程中学习: https://codelabs.developers.google.com/co
我有以下模拟对象: @Mock ObjectMapper objectMapper = new ObjectMapper(); 然后我写了一些 mock 逻辑,声称我做错了: Mockito.when
我正在使用 mockito 进行测试,但我遇到了这个问题: org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid
我有一组测试来验证我们的 Android 应用程序中的某些功能。部分代码负责将某些字符串放入某些 TextView 中。所以我想创建模拟的 TextView 对象以在测试时使用: public sta
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:在此处检测到错误的参数匹配器: 我在对以下静态方法执行 powermocki
我想模拟我的 PermissionHostCompat 类的操作 requestPermission(@NonNull String Permission, int requestCode) 。 pu
我对mockito完全陌生,我已经尝试了很多在网上找到的解决方案,但我仍然无法解决这个问题。我什至不确定是什么原因造成的。我需要为一个非常成熟的代码创建一个模拟测试,我不允许更改该代码。我需要模拟的代
我有这个测试 @Test public void addVacancy() throws Exception{ Vacancy mockVacancy = Mockito.mock(V
我正在尝试使用mockito的ArgumentCaptor类来捕获一些参数,然后对其进行一些验证。但它抛出了一个异常。 这就是打印的错误消息。 org.mockito.exceptions.misus
我在构建测试的 when-then 部分时遇到了问题。运行测试时出现以下错误。 我已经查看了这个 SO 链接 ( Mockito: InvalidUseOfMatchersException ) 并重
我最近在我的项目中将 Maven Surefire 插件升级到版本 v2.14.1(从 v2.6)。升级后,Mockito 开始在所有 JUnit 测试中抛出 InvalidUseOfMatchers
在我的 JUnit 类中,我有以下代码: @Mock private HttpServletRequest servletRequest; @Mock WidgetHelper widgetHelpe
我是一名优秀的程序员,十分优秀!