【问题标题】:Dredd testing of APIary calls returning an image / PNG对返回图像 / PNG 的 API 调用进行 Dredd 测试
【发布时间】:2014-07-18 12:18:32
【问题描述】:

返回图像/PNG 的 API 调用的 Dredd 测试失败。是否可以不检查返回图像的内容,而只是检查有一个不为空的图像作为响应?

这是我的测试的输出:

 [31mfail [39m: GET /imp-endpoint/api/V1/Resources?left_lower_lat=52.482780222078205&left_lower_lng=13.3154296875&right_upper_lng=13.359375&right_upper_lat=52.50953477032729&width=250&heigth=250 duration: 1176ms
 [31mfail [39m: body: Real and expected data does not match.

 [32mrequest [39m: 
body: 

headers: 
    accept: image/png
    User-Agent: Dredd/0.3.7 (Linux 3.5.0-52-generic; ia32)
    Authorization: Basic ZG1wOmRtcEAxMjM0

uri: /imp-endpoint/api/V1/Resources?left_lower_lat=52.482780222078205&left_lower_lng=13.3154296875&right_upper_lng=13.359375&right_upper_lat=52.50953477032729&width=250&heigth=250
method: GET


 [31mexpected [39m: 
headers: 
    content-type: image/png

body: 
�PNG

statusCode: 200


 [31mactual [39m: 
statusCode: 200
headers: 
    x-powered-by: Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1.2.2 Java/Oracle Corporation/1.7)
    server: GlassFish Server Open Source Edition 3.1.2.2
    access-control-allow-origin: *
    access-control-allow-methods: GET, POST, PUT, DELETE, OPTIONS
    content-type: image/png
    content-length: 26572
    date: Tue, 15 Jul 2014 09:00:26 GMT

body: 
�PNG


IHDR    � ?1g�IDATx^��

【问题讨论】:

    标签: apiary.io apiary dredd


    【解决方案1】:

    这是known limitation。正如 Adam 在链接页面上所说,目前API Blueprint 格式不支持二进制 blob,并且不能用于 Dredd 测试。

    我们(Apiary)计划在蓝图中正确支持二进制文件,但在此之前,我们确实应该为 API 提供一种通过验证的方法。

    作为一个棘手的解决方法,您可以指定空的 HTTP 正文和正确的 Content-Length 标头,这样就可以省略正文的测试。

    【讨论】:

    • 这种行为似乎在 Dredd 中发生了变化,因为这已经被编写了。指定空正文 + 正确的内容长度标头仍然会导致 Dredd 失败。 Apiary 测试站点中的错误消息显示为“真实数据与预期数据不匹配”。在“身体”上。
    【解决方案2】:

    作为一种解决方法,您可以使用:

    hooks.beforeValidation('User > Avatar > Get Mine', function (transaction) {
      transaction.expected.headers['content-length'] = 9999;
      transaction.real.body = '';
    });
    

    甚至,在蓝图上设置内容长度标头,如下所示:

    + Response 200 (image/png)
    
        + Headers
    
            Content-Length: 26572
    

    【讨论】:

    • 现在,我正在寻找一个发送图像的 POST 请求示例...:P
    猜你喜欢
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多