2

我在一个带有 Spring Boot java 框架的项目中工作,其中家伙自动生成 API 文档。每次运行 BDD/Integration 风格的测试时,都会从 mocha 测试中创建 api 蓝图文件。然后它运行 generate-html-from-api 蓝图。我喜欢这种方法,因为它有两个优点:

1) API docs are always correct and up-to-date 
2) saves time, because no need to write another documentation file (like apidoc). 

有没有人尝试过并且有节点项目的工作示例?我找到了api-doc-test插件,但是它的文档是有限的。? 理想情况下,我只想运行:

mocha --recursive

这将生成 api-doc.html 并放在 test/tmp/ 下。

我看过 swagger,但我真的不想指定端点信息两次,而且在 BDD 测试中编写一次并同时获得双重结果(测试 + 文档)真的很棒。

4

1 回答 1

0

https://github.com/stackia/test2doc.js

我正在开发这个项目,它可以从 BDD 测试中生成文档(目前只有 API 蓝图),这正是您所需要的。

测试代码示例:

const doc = require('test2doc')
const request = require('supertest') // We use supertest as the HTTP request library
require('should') // and use should as the assertion library

// For Koa, you should exports app.listen() or app.callback() in your app entry
const app = require('./my-express-app.js')

after(function () {
  doc.emit('api-documentation.apib')
})

doc.group('Products').is(doc => {
  describe('#Products', function () {
    doc.action('Get all products').is(doc => {
      it('should get all products', function () {
        // Write specs towards your API endpoint as you would normally do
        // Just decorate with some utility methods
        return request(app)
          .get(doc.get('/products'))
          .query(doc.query({
            minPrice: doc.val(10, 'Only products of which price >= this value should be returned')
          }))
          .expect(200)
          .then(res => {
            body = doc.resBody(res.body)
            body.desc('List of all products')
              .should.not.be.empty()
            body[0].should.have.properties('id', 'name', 'price')
            body[0].price.desc('Price of this product').should.be.a.Number
          })
      })
    })
  })
})
于 2017-03-04T20:55:16.300 回答