鑑於實現一個RESTful API和JSON格式的現有Node.js應用程式,這將是寫一個集成測試套件Node.js的好辦法嗎?如何在Noje.js RESTful應用程序中進行集成測試?
該套件應執行測試場景,通常包括將數據庫設置爲已知狀態(可能通過POST請求)並運行一系列涉及GET,POST,PUT和DELETE請求的測試,檢查返回的狀態代碼和響應。
鑑於實現一個RESTful API和JSON格式的現有Node.js應用程式,這將是寫一個集成測試套件Node.js的好辦法嗎?如何在Noje.js RESTful應用程序中進行集成測試?
該套件應執行測試場景,通常包括將數據庫設置爲已知狀態(可能通過POST請求)並運行一系列涉及GET,POST,PUT和DELETE請求的測試,檢查返回的狀態代碼和響應。
有單元測試框架的幾個選項。
我將展示與快報&誓言例子。
var assert = require('assert'),
http = require('http'),
server = getServer(); // get an instance of the HTTPServer
assert.response(server, {
'url': '/'
}, {
'body': "test body",
'status': "200"
});
並與vows-is
var is = require("vows-is");
is.config({
server: {
"factory": createServer,
"kill": destroyServer,
"uri": "http://localhost:4000"
}
})
is.suite("integration tests").batch()
.context("a request to GET /")
.topic.is.a.request("GET /")
.vow.it.should.have.status(200)
.vow.it.should.have
.header("content-type", "text/html; charset=utf-8")
.context("contains a body that")
.topic.is.property('body')
.vow.it.should.be.ok
.vow.it.should.include.string("hello world")
.suite().run({
reporter: is.reporter
}, function() {
is.end()
});
一個例子的願-IS是上的願的頂部上的薄的抽象,使其更容易與測試。
然而,誓言是在積極的發展中,所以使用風險自負。
我能夠實現[集成測試](https:// github.com/fernandoacorreia/pintura-blog/blob/master/test/test.js)與誓言,是和它的工作好。謝謝。 –
別忘了茉莉花/茉莉花節! –
鏈接到誓言是(https://github.com/Raynos/vows-is)壞了,找不到回購。 – bithavoc
我發現了一個類似的問題:http://stackoverflow.com/questions/7127226/node-js-testing-restful-api-vows-js –