|
最近在產(chǎn)品中開發(fā)基于REST的API接口,結(jié)合自己最近對(duì)Node.js的研究,想基于它開發(fā)一個(gè)REST Client做測(cè)試之用。 通過初步研究,Node.js開發(fā)HTTP Client還是挺方便的。
選用Node的理由: 1. 使用完全基于JavaScript的Node測(cè)試JSON格式的數(shù)據(jù),非常之方便 2. Node有很好的社區(qū)支持。(現(xiàn)在GitHub上已成了JavaScript最大的開源社區(qū))
By Example:
將上述代碼保存成RestTest.js,然后在命令行上運(yùn)行: node RestTest.js 就可以看輸出的結(jié)果了。
上面的代碼只是使用Node自帶的Assert做Unit Test,如果有興趣的話,還是引入Jasmine等BDD的測(cè)試框架。(待續(xù)。。。)
生成測(cè)報(bào)告: 1. Maven Jasmine plugin (SM Client Team已在使用了) 2. Testacular by Google(本博主推薦)
P.S.: 如果你是CoffeeScript的Fans可以參考下面的代碼片段 http = require 'http'
equal = require('assert').equal
username = 'falcon'
password = ''
_auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64')
options =
host: 'localhost'
port: 13080
path: '/SM/7/rest/1.1/incident_list/'
method: 'GET'
headers:
'accept': '*/*'
'content-type': "application/atom+xml"
'accept-encoding': 'gzip, deflate'
'accept-language': 'en-US,en;q=0.9'
'authorization': _auth
'user-agent': 'nodejs rest client'
req = http.request options, (res) ->
console.log('STATUS: ' + res.statusCode)
equal(200, res.statusCode)
console.log('HEADERS: ' + JSON.stringify(res.headers))
res.on 'data', (chunk)->
console.log('BODY: ' + chunk)
req.on 'error', (e)->
console.log('problem with request: ' + e.message)
req.end()
|
|
|