国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Ruby配置rspec和RestClient來檢測服務器

2019-10-26 19:27:46
字體:
來源:轉載
供稿:網友

如果你手工測試Restful 服務將會是一件非常單調乏味的事情。當然,目前有一些瀏覽器插件可以通過可視化的界面幫助你手工測試,例如postman、rest console,但是每次系統版本更新,你都需要去手動執行大量的測試,顯然這種方式不是非常實用。Ruby擁有許多出色的gem包,你可以使用它們完成這項枯燥的工作。其中RestClient是我比較喜歡的一個。結合ruby的rspec框架使用RestClient可以編寫非常強大的測試腳本。假如Github想讓你測試他們的Restful API。你可能想做的第一件事就是確保端點返回你預計的響應代碼。開始前,你需要確認你已經安裝了相應的gems。 最便利的方式是使用bundler安裝:

 source "https://rubygems.org" gem 'rest-client' gem 'rspec' gem 'json_expressions'

在cmd(windows,linux/mac環境請自行解決)進入你創建gemfile文件的同層目錄,運行 'bundle'

rafs-computer:rafael$ bundleUsing diff-lcs 1.2.5Using json_expressions 0.8.3Using mime-types 2.3Using netrc 0.7.7Using rest-client 1.7.2Using rspec-support 3.1.1Using rspec-core 3.1.4Using rspec-expectations 3.1.2Using rspec-mocks 3.1.2Using rspec 3.1.0Using bundler 1.7.3Your bundle is complete!

現在讓我們來驗證我們從用戶終端得到200響應:

require 'rspec'require 'rest_client'describe 'GitHub API' do    it 'should return information about a user' do     result = RestClient.get 'https://api.github.com/users/rest-client', :content_type => :json, :accept => :json    expect(result.code).to eq(200)  endend

在命令行執行rspec -f doc filename

2015713114043998.png (543×129)

因此返回碼是對的,但是我們如何知道返回的json也是對的呢?

有幾種不同的方式去驗證。一種方法是解析body中的json(由key,value組成),然后針對你要檢查的每個key創建斷言。這種方式可以使用,但是它需要你寫多個斷言而且是比較難于維護的。另外一種方法是和一個已知有效的json格式的數據文件比較。你可以使用json_expressions gem包去做這個事情。下面的例子是相同的spec文件。新增一個testcase用來驗證json數據。

首先準備一個users.json文件

{ "login": "rest-client", "id": 2386701, "avatar_url": "https://avatars.githubusercontent.com/u/2386701?v=3", "gravatar_id": "", "url": "https://api.github.com/users/rest-client", "html_url": "https://github.com/rest-client", "followers_url": "https://api.github.com/users/rest-client/followers", "following_url": "https://api.github.com/users/rest-client/following{/other_user}", "gists_url": "https://api.github.com/users/rest-client/gists{/gist_id}", "starred_url": "https://api.github.com/users/rest-client/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/rest-client/subscriptions", "organizations_url": "https://api.github.com/users/rest-client/orgs", "repos_url": "https://api.github.com/users/rest-client/repos", "events_url": "https://api.github.com/users/rest-client/events{/privacy}", "received_events_url": "https://api.github.com/users/rest-client/received_events", "type": "Organization", "site_admin": false, "name": "REST-Client Team", "company": null, "blog": "", "location": null, "email": null, "hireable": false, "bio": null, "public_repos": 1, "public_gists": 0, "followers": 0, "following": 0, "created_at": "2012-09-20T15:01:43Z", "updated_at": "2015-03-11T19:08:01Z"}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 小金县| 美姑县| 裕民县| 长垣县| 长宁县| 丰顺县| 如皋市| 乌拉特中旗| 济宁市| 分宜县| 东安县| 云龙县| 汉阴县| 佛学| 弥渡县| 宁蒗| 馆陶县| 博客| 绵竹市| 定结县| 江孜县| 甘南县| 泗阳县| 万荣县| 布拖县| 永靖县| 锡林郭勒盟| 金平| 湟源县| 鱼台县| 孝昌县| 墨竹工卡县| 洮南市| 无为县| 安溪县| 巴楚县| 凌海市| 沁阳市| 杂多县| 进贤县| 罗平县|