requestTelemetryContext.getHttpRequestTelemetry().getContext().getOperation()
OperationContext operationContext = new OperationContext(null);
RequestTelemetryContext requestTelemetryContext = mock(RequestTelemetryContext.class);
when(requestTelemetryContext.getHttpRequestTelemetry().getContext().getOperation()).thenReturn(operationContext); //causes java.lang.NullPointerException
OperationContext operationContext = new OperationContext(null);
RequestTelemetryContext requestTelemetryContext = mock(RequestTelemetryContext.class);
RequestTelemetry requestTelemetry = new RequestTelemetry();
when(requestTelemetryContext.getHttpRequestTelemetry()).thenReturn(requestTelemetry);
when(requestTelemetryContext.getHttpRequestTelemetry().getContext().getOperation()).thenReturn(operationContext);
org.mockito.exceptions.misusing.wurntypeofreturnvalue:OperationContext不能由gethtPrequestTelemetry()返回,如果您不确定为什么会超过错误读取,那么gethtPrequestTelemetry()应该返回RequestTelemetry***。由于语法的性质,上面的问题可能会发生,因为:
我不明白为什么它不能只是模拟整个链调用,而且我也不像它在错误中所说的那样试图通过gethtPrequestTelemetry
返回operationcontext
。
编辑:我已经尝试过建议的方法:
OperationContext operationContext = new OperationContext(null);
RequestTelemetryContext requestTelemetryContext = mock(RequestTelemetryContext.class);
RequestTelemetry requestTelemetry = mock(RequestTelemetry.class);
TelemetryContext telemetryContext = mock(TelemetryContext.class);
when(requestTelemetryContext.getHttpRequestTelemetry()).thenReturn(requestTelemetry);
when(requestTelemetry.getContext()).thenReturn(telemetryContext);
when(telemetryContext.getOperation()).thenReturn(operationContext);
ThreadContext.setRequestTelemetryContext(requestTelemetryContext);
不幸的是,requestTelemetry requestTelemetry=mock(requestTelemetry.class);
行导致:
Mockito不能模拟/监视,因为:
您需要在调用链的每个阶段返回mock,每个mock应该返回下一个mock对象。
a().b().c().d()
所以a()应该返回一个模拟,它被配置为返回一个模拟b等。
when(a()).thenReturn(mockA);
when(mockA.b()).thenReturn(mockB);
等等。
我从单元测试开始。我对一个类做了更改,在这个类中我不注入SessionContext,这样我就可以在需要时进行查找。 现在,在我的测试中,我想注入它,这样我就可以模拟查找方法: 我觉得很奇怪,因为我拥有所需的所有依赖项(这段代码在真实的应用程序中工作)。 如何使用mockito模拟和注入SessionContext?(我无法改变嘲讽框架)。
因为MyFinalClass中的getObject(字符串名)方法的实现尚未完成,所以我在调用getObject方法时抛出新的MyException()。但是,该异常不会作为mockito.when(...)调用未被调用,导致断言失败。 请帮帮忙。谢谢你。
基类 在派生类中不应用组合和其他函数。如果是,我是否应用了错误的模式?我应该如何处理相同的?
异常堆栈跟踪
在我的实现类中,我有一个读写锁定义,如下所示, 我在一个名为的方法中使用它, 正如我所说的,是null,但是rwLock是初始化的。请解释Mockito是如何发生这种情况的。理想的方法是什么?