1

我正在编写 RESTful 应用程序以及文档。因为文档是作为网页编写的,所以我希望在文档中嵌入 REST 服务测试。

我使用 Jasmine 进行测试,并且一直在寻找测试 REST 调用的一些简化方法。Frisby看起来像我需要的东西,但它在 Node.js 中运行,而不是在浏览器中运行

您是否知道任何类似于 Frisby 测试但在浏览器环境中的库?对于它的价值,我找到了 SuperTest,它在便携式superagent上运行,但我不知道它是否可以与 Jasmine 一起使用(它们与 Mocha 密切相关)。

更新:不,超级测试(还)不能在浏览器中工作:(

4

1 回答 1

0

最后,我编写了自己的一小部分帮助函数来包装 SuperAgent。现在测试代码(CoffeeScript 和 Jasmine)看起来像:

describe "A suite", ->
    resource = null

    it "and a spec", (done) ->
        expectResponse(request.get "/path/to/resource")
            .ok()
            .json()
            .andDo (response) -> resource = response.body
            .end(done)

一个助手类看起来像这样

class ExpectResponseWrapper
    constructor: (req) ->
        @req = req
        @expectations = []

    end: (done) ->
        @req.end (err, res) =>
            if (err)
                expect( -> throw err).not.toThrow()
            else
                for exp in @expectations
                    exp(res)
            done?()

    ok: ->
        @expectations.push (res) ->
            expect(res.statusType).toEqual(2)
        this

    json: ->
        @expectations.push (res) ->
            expect(res.type).toEqual('application/json')
        this

    andDo: (fn) ->
        @expectations.push fn
        this

    # ... and the list of other helper expectations goes on ...

expectResponse = (req) -> new ExpectResponseWrapper(req)
于 2014-08-04T15:37:25.090 回答