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

在boundJaxrsResponse中模仿或制作球衣

丁韬
2023-03-14

我是一个相当新开发的新泽西客户,在一些测试中遇到了一些问题。首先,我可能应该提到,我的应用程序都是客户端的,根本没有服务器端的东西。

我的问题是,我想创建实例< code > InboundJaxrsResponse 的< code>Response对象,到目前为止,我一直试图通过使用< code>Mockito和< code > Response builder . build()模拟< code>Response来实现这一点

使用Mockito:

Response response = mock(Response.class);
when(response.readEntity(InputStream.class))
    .thenReturn(ClassLoader.getSystemResourceAsStream("example_response.xml");

这工作正常,当我用response.readEntity(InputStream.class)读出响应的实体时,我得到了预期的实体。但是我需要多次从响应中读取实体。为了实现这一点,我在读出实体之前使用response.bufferEntity()。第一次我读取实体时一切正常,但第二次我得到一个异常I/O流关闭...嗯,我想出了嘲笑方法BufferEntity以及如下:

Response response = mock(Response.class);
when(response.bufferEntity()).thenCallRealMethod();
when(response.readEntity(InputStream.class))
    .thenReturn(ClassLoader.getSystemResourceAsStream("example_response.xml");

但这只导致在调用< code>bufferEntity()时抛出错误,这是因为< code>Response的< code>bufferEntity()是< code >抽象的。

我的另一个尝试是使用ResponseBuilder.build(),如下所示:

ResponseBuilder responseBuilder = Response.accepted(ClassLoader.getSystemResourceAsStream("example_response.xml"));
Response response = responseBuilder.build();

这个声明很好,通过调试我的响应,我可以看到它得到了正确的实体,等等。但是这次当我调用<code>响应时。bufferEntity()我得到了一个异常抛出,表示该操作对于<code>OutboundJaxrsResponse

所以这最终归结为三个问题。

  1. 这是模拟/构建这种类型的对象进行测试的方法吗
  2. 有没有办法模拟入站响应
  3. 是否有一种方法来代替使用<code>ResponseBuilder创建<code>OutboundJaxrsResponse创建<code>InboundJaxrsResponse,或者至少将<code>OutboundJax RSResponce的实例转换为<code>outboundJaxrResponse

共有1个答案

董光霁
2023-03-14

我这样解决:

@Spy Response response;

...

// for assignments in code under testing:
doReturn( response ).when( dwConnector ).getResource( anyString() );

// for entity and response status reading:
doReturn( "{a:1}".getBytes() ).when( response ).readEntity( byte[].class );
doReturn( 200 ).when( response ).getStatus();
 类似资料:
  • 虽然我确实理解泛型的一些常见情况,但我在下面的例子中遗漏了一些东西。 我有以下课程 第4行给出了错误 显然,编译器认为不同的并不真正相等。而我的直觉告诉我,这是正确的。 如果第4行是合法的,谁能提供一个我会得到运行时错误的例子? 编辑: 为了避免混淆,我用一个具体的赋值替换了第3行中的

  • 但是,我得到一个UnfinishedStubbingException: 谁能提供更多的指导?

  • 问题内容: 我正在使用JavaScript。我想存储具有以下属性的 唯一 ,无序字符串值的列表: 快速询问“列表中是否有A”的方法? 一种快速的方法(如果列表中存在A,则从列表中删除A) 一种快速的方法“将A添加到列表(如果尚不存在)”。 我真正想要的是一套。有什么建议以最佳方式模仿JavaScript中的集合吗? 这个问题建议使用Object,其键存储属性,并且所有值都设置为true:这是明智的

  • 问题内容: 谁能帮我解释为什么Java代码出现问题并一次性打印所有数据,而不是将每个数据块都作为javascript代码优先 Java代码: JavaScript :(打开页面http://jerseyexample- ravikant.rhcloud.com/rest/jws ,然后按F12并在控制台中运行以下内容,不允许其他域进行javascript调用) 编辑:只是为了帮助它也将正常的Jav

  • 我想画一个球体并对它进行纹理,我用三角形来画它,当我试图对它进行纹理时,有些三角形没有被覆盖 我用这个函数来生成坐标

  • 我是openshift新手,正在学习交互式教程https://learn.openshift.com/middleware/fis-deploy-app/. 本教程使用的源代码来自https://github.com/jbossdemocentral/katacoda-fuse-getting-started.git并构建docker映像,并将应用程序部署到openshift环境中。 教程中提到的