java - 是否需要为这种 Mockito 情况编写自定义匹配器?

标签 java junit mocking mockito

我有以下情况...我想在调用特定方法时抛出异常。我不关心传递给这个方法的是什么,我只想调用一个异常。问题在于此方法将自定义类作为参数。

我发现唯一的方法是使用以下方法:

// Matches any Foo
TypeSafeMatcher<Foo> fooMatcher = new TypeSafeMatcher<Foo>() {
  @Override
  public Boolean matchesSafely(Foo foo) {
    return true;
  }

  // more overrides
}

doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod(fooMatcher);

我尝试执行以下操作,但收到类似于“无法将 Object 转换为 Foo”的消息...这是有道理的:

doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod(anyObject());

我想知道是否有更简单的方法来执行此操作而无需为每个自定义类创建自定义匹配器?

谢谢

最佳答案

你试过 isA 匹配器了吗?

doThrow(new RuntimeException("dummy exception")).when(mockObj).someMethod(isA(Foo.class));

关于java - 是否需要为这种 Mockito 情况编写自定义匹配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4381415/

相关文章:

php - 好的PHP模拟框架

tdd - 单元测试、模拟对象和 ioc 的最佳实践

java - Singleton HSQLDB数据库通过测试

AndroidJUnit4.class 已弃用 : How to use androidx. test.ext.junit.runners.AndroidJUnit4?

java - 在 junit 测试中通过 URL 提供 stub 文件 -wiremock

java - javadoc 如何知道每个文档注释针对哪个方法?

java - 如何验证 lambda 函数 Mockito

unit-testing - 如何在 Jasmine 中模拟 Angular 服务的功能

java - 如何用java制作文件加载器

java - 如何分析PermGen空间?