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

@injectmocks和@spy一起提供RuntimeException

谯嘉懿
2023-03-14

我在课堂上有两个方法。我只想测试孤立的其中一个。

@Spy @InjectMocks private Manager manager;
//...
doReturn(obj).when(manager).method2(any());
Caused by: org.mockito.exceptions.base.MockitoException: Cannot create a @Spy for 'manager' field because the *instance* is missing 

共有1个答案

祁宾白
2023-03-14

首先,@spy可以与@injectmocks一起使用。

其次,我也遇到这个问题。当将@runwith(powermockrunner.class)
修改为@runwith(MockitoJunitrunner.class)时,我解决了这个问题。

 类似资料:
  • Mockito lib允许用@injectmock注入对象吗?我见过@Spy注释的例子,但当我试图使用它时,总是得到NullPointerException。我知道我总是可以直接使用reflect,但想法是避免这样的代码。

  • 问题内容: 在我目前正在处理的项目中,我经常看到和在字段中一起使用。我从未在任何教程或其他资源中以这种方式看到过它。我用谷歌搜索了这个特定的组合,但是除了在GitHub上的这个线程外没有找到其他东西:https : //github.com/mockito/mockito/issues/169 这让我觉得我们在以一种奇怪的方式使用它。 注意:我认为有时同时使用两个批注是有道理的,因为如果仅使用 M

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

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

  • 问题内容: 我有一个使用自动装配的3个不同类的A类 在测试它们时,我只希望将其中两个类(B&C)作为模拟,并让D类在正常运行时可以自动装配,但此代码对我不起作用: 甚至有可能这样做吗? 问题答案: 应该是这样的 如果您不想成为别人,则无需在课堂上做任何事情。您 应具有的正确实例。此外,我认为你需要使用的工作,用正确的设定。因为您没有使用,所以需要使用 MockitoAnnotations.init

  • 我有一个特殊的情况,在这里我必须模拟一些字段,并为我的类同时使用@mock和@spy,因为在一些测试中我需要改变它自己的方法的行为。我使用@InjectMocks作为构造函数。看起来是这样的: 正在测试的服务: 问题是--正如代码中所评论的那样--final字段没有被注入并且它是空的。当我移除final关键字时,它将被正确地注入,并且所有测试都按照预期工作。我尝试了其他主题中的一些技巧--也使用了