ruby – 如何测试JSON REST API

栏目: Ruby · 发布时间: 7年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/13955233/how-to-test-a-json-rest-api

我是全新的红宝石(第一天使用红宝石),所以请原谅任何新手问题和缺乏理解.

我试图验证对http呼叫的响应.

例如,假设端点如下:

https://applicationname-api-sbox02.herokuapp.com

而且,我正在尝试通过发送这样的获取请求来验证用户:

get_response = RestClient.get( "https://applicationname-api-sbox02.herokuapp.com/api/v1/users", 
                    {
                        "Content-Type" => "application/json",
                        "Authorization" => "token 4d012314b7e46008f215cdb7d120cdd7",
                        "Manufacturer-Token" => "8d0693ccfe65104600e2555d5af34213"
                    }
                )

现在,我想验证响应并执行以下操作:

– 解析响应,确保它是有效的JSON

– 做一些验证并验证JSON是否具有正确的数据(例如,验证id = 4)

– 如果遇到错误,使用’raise’方法引发异常.

在我第一次微弱的尝试中,我尝试了以下内容:

puts get_response.body
if get_response.code == 200
puts "********* Get current user successful"
else
puts "Get current user failed!!"
end

现在,这返回了获取当前用户是否成功,但是如何实际解析json,验证正确的id,如果发生错误则引发异常?

而不是提出异常,写一个测试.

一个直接的方法,使用从std lib的json解析器和单元测试框架:

require 'minitest/autorun'
require 'rest_client'
require 'json'

class APITest < MiniTest::Unit::TestCase
  def setup
    response = RestClient.get("https://applicationname-api-sbox02.herokuapp.com/api/v1/users", 
      {
         "Content-Type" => "application/json",
         "Authorization" => "token 4d012314b7e46008f215cdb7d120cdd7",
         "Manufacturer-Token" => "8d0693ccfe65104600e2555d5af34213"
      }
    ) 
    @data = JSON.parse response.body
  end

  def test_id_correct
    assert_equal 4, @data['id']
  end
end

用ruby $filename执行

JSON.parse 将JSON字符串解析为ruby hash

Getting started with minitest

如果您使用的是 ruby 1.8,则需要安装 json gem 并安装 minitest gem ,或者切换到较旧的testunit API.如果您选择后者,则需要更改require’minitest / autorun’ – >需要’test / unit’和MiniTest :: Unit :: TestCase – >测试::单位:: TestCase的

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/13955233/how-to-test-a-json-rest-api


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数字乌托邦

数字乌托邦

[美]弗雷德·特纳 / 张行舟、王芳、叶富华、余倩 / 译言·东西文库/电子工业出版社 / 2013-5-1 / 49.80元

20世纪60年代早期,在美国大众眼中,计算机只是冷战中冰冷的机器,然而到了90年代互联网到来之时,计算机却呈现出一个截然不同的世界——它们模拟出了一个数字乌托邦般的协同体,而这正是曾经最反对冷战的嬉皮士们的共同愿景。 本书正是探索这次非同寻常,且颇具讽刺意味的变革的第一本书。作者挖掘出那些在旧金山湾区的先驱者——斯图尔特·布兰德和他的“全球网络”鲜为人知的故事。1968年到1998年期间,通......一起来看看 《数字乌托邦》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具