gpt4 book ai didi

java - 如何模拟模拟对象的方法调用?

转载 作者:行者123 更新时间:2023-11-30 07:01:29 28 4
gpt4 key购买 nike

考虑这个例子

    resp.getWriter().write(Collections.singletonMap("path", file.getAbsolutePath()).toString());

其中 respHttpServletResponse 并被模拟。

我正在使用 JMock Mockery mock 这些

我的代码看起来像

   try {
atLeast(1).of(resp).getWriter().write(String.valueOf(any(String.class)));
} catch (IOException e) {
e.printStackTrace();
}
will(returnValue("Hello"));

当我运行这个时,我得到

java.lang.NullPointerException

我相信这是因为 getWriter() 没有发送回任何东西

我该如何处理这种情况?

最佳答案

您需要 2 个模拟对象。

HttpServletResponse resp = context.mock(HttpServletResponse.class);
Writer writer = context.mock(Writer.class);

...

atLeast(1).of(resp).getWriter();
will(returnValue(writer));
allowing(writer).write(with(any(String.class));

关于java - 如何模拟模拟对象的方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29785589/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com