单位测试JEST中的承诺

时间:2018-01-18 07:41:50

标签: promise jestjs

问题在于使用JEST进行单元测试。 如何测试正在返回发出异步HTTP请求的promise的函数X.

功能X

import httpHelper from './httpHelper';    

function fetchMoxtraAccessToken(userEWAToken, successCallback, failureCallback) {
        const httpObj = {
            url: '/getAccessToken',
            headers: { Authorization: userEWAToken },
        };

        return httpHelper(httpObj, successCallback, failureCallback);
    }

如何根据响应对X功能进行单元测试?

1 个答案:

答案 0 :(得分:1)

最简单的方法是模拟httpHelper,这样它就会返回一个间谍,您可以使用正确的参数测试该间谍:

jest.mock('./httpHelper', () = > jest.fn()) //Path must be relative to test file
import httpHelper from './httpHelper'

describe(('fetchMoxtraAccessToken') => {
    it(('makes correct http request') => {
        const userEWAToken = 'someUserEWAToken'
        const successCallback = jest.fn()
        const failureCallback = jest.fn()
        fetchMoxtraAccessToken(userEWAToken, successCallback, failureCallback)
        expect(httpHelper).toHaveBeenCalledWith({
            url: '/getAccessToken',
            headers: {
                Authorization: 'someUserEWAToken'
            },
        }, successCallback, failureCallback)
    })
})
相关问题