我应该如何编写使用业力,摩卡咖啡和辛农的承诺的单元测试forjavascript前端服务



试图测试我正在写的一些服务,这些服务与第三方API交互并想知道如何有效地测试它。

我有下一个方法:

    function getMemberProfile(memberId) {
        //Make sure memberId is defined and that it is a number
        if (!isNaN(memberId)) {
            return Client.authorizedApiRequest('/members/' + memberId).get();
        }
        return Promise.reject(new Error('Proper memberId was not supplied'));
    }

client.authorizedapirequest('/y/mement/' memberId).get()调用第三方API,并返回解决某些对象的承诺(即{id:12,name:'john doe'})。

那么,我应该如何测试GetMemberProfile功能?我正在考虑嘲笑客户。

谢谢

好的,让它起作用。首先,您需要安装柴。然后,在您的规格文件中:

beforeEach(function () {
    fakeMember = {
        member: {
            id: 10002,
            first_name: 'John',
            last_name: 'Doe'
        }
    };
});
it('should get a member's profile by memberId', function () {
        //mock
        sinon.stub(Client, 'authorizedApiRequest').withArgs('/members/' + fakeMember.member.id).returns({
            get: function () {
                return Promise.resolve(fakeMember);
            }
        });
        return Members.getMemberProfile(fakeMember.member.id).then(function (response) {
            expect(response).to.have.property('member');
            expect(response.member).to.have.property('id', fakeMember.member.id);
            expect(response.member).to.have.property('first_name', fakeMember.member.first_name);
            expect(response.member).to.have.property('last_name', fakeMember.member.last_name);
        });
});

最新更新