为Strapi APIs编写单元测试

问题描述 投票:0回答:1

我想开始为Strapi端点或API编写单元测试。由于它与Express不同,而且在我看来没有app.route的概念。我不知道该如何开始。

我曾经用Mocha,Sinon和Chai为API写过单元测试套装。但我的问题是他们如何与Strapi APIs一起工作。

如果有谁知道Strapi API的单元测试知识,对我来说将是一个很好的开始。

用测试中的代码更新问题

controllerscheckStatus.js

module.exports = {

    checkStatus: async (ctx) => {
       return strapi.services.checkstatus.getStatus(ctx.request.body.id);
    }
};

我想开始为Strapi端点或API编写单元测试。

module.exports = {

    getStatus: (id) => {
       return id;
    }
};
node.js unit-testing mocha sinon strapi
1个回答
0
投票

作为 柴-http 文档中说就像这样简单。

你也可以使用一个基本网址作为请求的基础。

在上面的链接页面中查找URL部分。

测试Strapi开发版API所需的基本测试代码可以如下所示。

// Somewhere in your straiproject/tests/YourStrapiAPITest.spec.js

'use strict';

import 'chai-http';
import * as chai from 'chai';

const chaiHttp = require('chai-http');
const assert = chai.assert;

chai.use(chaiHttp);

describe('YourStrapiAPITest', function(done) {

    it('Should return 200 with expected JSON', function() {
        // Ensure your porject is up and running
        // with `npm run develop` or `npm run start`
        chai.request('http://localhost:1337/yourcustomcontenttype')
            .get('/')
            .send()
            .end(function(err, res) {
                assert.equal(res.status, 200);
                // More assertions to test the actual
                // response data vs the expected one.
                done();
            });;
    });

});

这更多的是一个集成而不是单元测试 但它已经覆盖了你的Strapi测试需求。

如果你想要一个用于MochaChai-http测试的asyncawait版本,请参考以下内容 本回答.

© www.soinside.com 2019 - 2024. All rights reserved.