【问题标题】:Unit Testing the promises in JEST对 JEST 中的 Promise 进行单元测试
【发布时间】:2018-01-18 16:02:44
【问题描述】:

问题在于使用 JEST 进行单元测试。 如何测试一个函数 X,它返回一个正在发出异步 HTTP 请求的承诺。

函数 X

import httpHelper from './httpHelper';    

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

        return httpHelper(httpObj, successCallback, failureCallback);
    }

如何根据响应对函数 X 进行单元测试?

【问题讨论】:

    标签: promise jestjs


    【解决方案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)
        })
    })
    

    【讨论】:

      猜你喜欢
      • 2019-06-08
      • 1970-01-01
      • 2019-05-16
      • 2017-10-20
      • 2020-12-30
      • 2020-11-12
      • 2020-12-28
      • 1970-01-01
      • 2018-09-04
      相关资源
      最近更新 更多