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

@Mock和@InjectMocks的多个级别

储仲渊
2023-03-14
问题内容

因此,我了解到在Mockito中,@ InjectMocks将使用@Mock的注解注入所有可以注入的内容,但是如何处理这种情况呢?

@Mock
private MockObject1 mockObject1;

@Mock
private MockObject2 mockObject2;

@InjectMocks
private SystemUnderTest systemUnderTest = new SystemUnderTest();

假设MockObject2的属性类型为MockObject1,而SystemUnderTest的属性类型为MockObject2。我想将模拟对象1注入到模拟对象2中,并将模拟对象2注入到systemUnderTest中。

注释可以吗?


问题答案:

由于我在这里没有任何回应,因此我在Mockito论坛上进行了询问。这是讨论的链接:https
:
//groups.google.com/d/topic/mockito/hWwcI5UHFi0/discussion

总结答案,从技术上讲,这将使模拟的目的失效。您实际上应该只模拟SystemUnderTest类所需的对象。在本身是模拟对象的对象中模拟事物是毫无意义的。

如果您真的想这样做,@ spy可以提供帮助



 类似资料:
  • 问题内容: 我目前正在研究Mockito框架,并且已经使用Mockito创建了一些测试用例。但后来我读到的不是调用模拟( SomeClass的 的.class)我可以使用和-我需要做的唯一一件事情就是我的注释测试类或使用的方法。 但这不起作用-似乎不会起作用!这是我的2个代码修订-一个使用注释,另一个不使用注释。 我究竟做错了什么? 正如我所说-这项工作很棒。但是以下内容不会: 这是课程: 我想念

  • 测试代码: 错误信息 当我将@injectmocks更改为@mock时,第二个测试是可以的,但第一个测试是错误的。我需要添加到一个stubbing 我不知道怎么做, injectmocks是否必要?

  • 问题内容: 和框架有什么区别? 问题答案: 创建一个模拟。创建该类的实例,并将使用(或)注释创建的模拟注入该实例。 请注意,你必须使用或初始化这些模拟并注入它们。

  • Mockito框架中的和有什么区别?

  • 高级 Mock 分为Mock 期望和自定义 Mock 脚本两种方式。 Mock 期望 在测试时,很多时候需要根据不同的请求参数、IP 返回不同的 HTTP Code、HTTP 头和 JSON 数据。 Mock 期望就是根据设置的请求过滤规则,返回期望数据。 使用方法 进入接口详情页,点击『高级 Mock』选项。 2. 点击『添加期望』,填写过滤规则以及期望返回数据,点击『确定』保存。 3. 然后尝

  • 我有一个有两个阶段的Dockerfile;第一阶段从源代码构建一个react应用程序,第二阶段复制构建并添加一个NGINX服务器: 我也在使用gitlab-ci,我希望有多个阶段:构建、测试和部署。但是我不知道如何将构建和测试阶段分开,因为我使用的是多阶段的DockerFile。问题是所有的JS测试(对于React)都需要在“Yarn build”执行之前运行,并且build被复制到seconds