ruby – 如何测试JSON REST API
我是全新的ruby(第一天使用ruby),所以请原谅任何新手问题和缺乏理解.
我试图验证对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" } ) 现在,我想验证响应并执行以下操作: 在我第一次微弱的尝试中,我尝试了以下内容: 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","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的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |