当前位置: 首页 > 知识库问答 >
问题:

Mockito方法行为

鞠子轩
2023-03-14

我有一个工厂接口B,它返回类型a的对象。类型a也是一个接口。

我很难弄清楚如何在模拟中为.doSomething()定义方法行为,因为每当工厂返回一个新的实例时,它都需要知道如何doSomething()。

这就是我到目前为止嘲笑工厂的地方,但是A不知道如何做()。

when(B.getObject()).thenReturn(Mockito.mock(A.class));

是否有某种方法可以为将返回的所有实例定义。doSomething()?

非常感谢任何帮助。

共有1个答案

唐经国
2023-03-14
A a = createA();
when(B.getObject()).thenReturn(a);

private static A createA() {
  A result = Mockito.mock(A.class);
  when(A.doSomething()).thenReturn(something);
  return result;
}

您可能会尝试以下方法:

when(B.getObject()).thenReturn(createA());

但是它不会工作,因为‘嵌套’嘲笑。更多细节在这里。

 类似资料:
  • 我试图通过在传入字符串“John”时返回一个用户对象来建立类(spring-data-jpa存储库)的方法。 发生的情况是,在userService中,当调用users.findbyUsername(“John”)时,它总是返回null,而不是我定义的任何用户对象: 当我在测试方法中放置断点并比较users和UserService.users时,它们是相等的。 pom版本

  • 我有一个类,它有两个方法。我想模拟这个类,然后模拟第一个方法,但不是第二个。 例如。 单元测试代码: 奇怪的是m2没有被调用。 我错过什么了吗?

  • 看起来HttpClient及其子类有问题。

  • 问题内容: 我最近已经问了几个有关jUnit和Mockito的问题,但我仍然很努力地把握住这个问题。这些教程都是针对非常简单的示例的,因此我正在努力扩大测试用例以适合我的课程。 我目前正在尝试为Webapp中我的一个代理中的方法编写一些测试用例。该方法与代理内部的其他两种方法交互以验证某些对象。我现在只想测试这种方法。 这是我尝试做的事情: 创建我的代理的Mockito对象,如下所示: 使用Moc

  • 我最近问了几个面向jUnit和Mockito的问题,但我仍然很难掌握其中的诀窍。这些教程都是针对非常简单的示例,所以我很难扩展我的测试用例来为我的类工作。 我目前正试图为我在WebApp中的一个代理中的一个方法编写一些测试用例。该方法与代理内部的几个其他方法交互,以验证某些对象。我现在只想测试一下这个方法。 使用Mockito设置存根(希望是正确的术语)。如下所示: 尝试执行我的方法,如下所示:

  • 看起来mockito不高兴当你在测试方法之外存根。不支持吗? 编辑:我可以通过在方法中执行stubbing来实现这一点,但我希望在方法中重用stubbing。