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

使用mockito模拟SessionContex会导致ClassNotFoundException

冯文彬
2023-03-14

我从单元测试开始。我对一个类做了更改,在这个类中我不注入SessionContext,这样我就可以在需要时进行查找。

@Resource
private SessionContext ctx;

现在,在我的测试中,我想注入它,这样我就可以模拟查找方法:

@Mock
private SessionContext ctx;

我觉得很奇怪,因为我拥有所需的所有依赖项(这段代码在真实的应用程序中工作)。

如何使用mockito模拟和注入SessionContext?(我无法改变嘲讽框架)。

共有1个答案

呼延才俊
2023-03-14

我经历了这个相同的问题,并通过添加一个仅对测试范围的依赖关系来解决这个问题!

<dependency>
    <groupId>org.apache.geronimo.specs</groupId>
    <artifactId>geronimo-ejb_2.1_spec</artifactId>
    <version>1.1</version>
    <scope>test</scope>
</dependency>
 类似资料:
  • org.mockito.exceptions.misusing.wurntypeofreturnvalue:OperationContext不能由gethtPrequestTelemetry()返回,如果您不确定为什么会超过错误读取,那么gethtPrequestTelemetry()应该返回RequestTelemetry***。由于语法的性质,上面的问题可能会发生,因为: 此异常可能发生在错误

  • 所以在用kotlin类做了大量的试验和错误之后,我发现同样的代码在java中是可测试的,但在kotlin中是不可测试的。 这会导致:org . mock ITO . exceptions . mis using . missingmethodinvocationexception:when()需要一个必须是“模拟上的方法调用”的参数。比如:when(mock.getArticles())。然后返回

  • 使用mockito模拟一个方法会确保永远不会调用被模拟的方法吗?我有一个主类,它包含一些我想为其编写单元测试的代码,还有一个单元测试类MainTest,它包含主类的单元测试。 eg: 源类: JUnit测试(使用mockito) 这项测试失败了。为什么?

  • 我是莫基托的新手。我试图通过模拟数据库交互为服务编写jnuit: 我有下面的类(只是实际类的代表) 我的测试课就像是 但是当我运行这个测试时,它仍然调用实际的db调用并从DB中检索值,而不是模拟值,我应该模拟sql连接和非默认构造函数吗?我一无所知。 -- 更新 正如人们所建议的那样,我将DAO实例化移动到我的服务构造函数中,并且还使用了Spy,但是我仍然调用了实际的DB调用而不是模拟调用。

  • 我的测试存根是 我在这里做错了什么?

  • 我正在将Powermock从我目前正在进行的项目中移除,因此我试图仅用Mockito(Mockito-Core-2.2.28)重写一些现有的unitary测试。 无法模拟/Spy类Com.ExternalPackagePath.ExternalClass Mockito无法模仿/监视,因为: 最终类 正如Mockito文档(https://github.com/Mockito/Mockito/wi