首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mockito在模拟的Javalin上下文上调用real方法

Mockito在模拟的Javalin上下文上调用real方法
EN

Stack Overflow用户
提问于 2019-10-18 16:02:24
回答 1查看 331关注 0票数 2

我有一个非常奇怪的行为。似乎Mockito是在模拟类上调用真正的方法,从而导致NullPointerException。我是在模仿Java的Java http框架中的上下文对象。

这是导致异常的最小代码。

代码语言:javascript
复制
import io.javalin.http.Context;
import org.mockito.Mockito;

public class Main {
    public static void main(String[] args) {
        Context ctx = Mockito.mock(Context.class);
        Mockito.when(ctx.queryParam("hello")).thenReturn("test");
    }
}

我得到了

代码语言:javascript
复制
    at io.javalin.http.Context.queryString(Context.kt:285)
    at io.javalin.http.Context.queryParamMap(Context.kt:282)
    at io.javalin.http.Context.queryParams(Context.kt:279)
    at io.javalin.http.Context.queryParam(Context.kt:266)
    at io.javalin.http.Context.queryParam$default(Context.kt:266)
    at io.javalin.http.Context.queryParam(Context.kt)
    at Main.main(Main.java:9)

但它不应该调用真正的代码!怎么一回事?

EN

回答 1

Stack Overflow用户

发布于 2019-10-18 16:11:36

您并没有真正正确地添加测试。不是在main方法中创建它们,而是创建一个测试类,然后使用@Test注释来注释您的测试(为此需要JUnit )。然后,您应该能够使用您的IDE运行测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58446474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档