Jest API测试

时间:2018-09-20 22:20:33

标签: javascript ajax testing jestjs

我在应用程序的API层上编写了许多单元测试,但在使用笑话来模拟各种端点时遇到了麻烦。我对此没有任何经验,许多文章都对我的特定情况没有帮助

我有特定的模块设置,可以使用Axios发出请求。 这是我需要模拟的特定呼叫:

B(const A& a)

这是我当前的测试结果:

export async function ajax<T>(options: AxiosRequestConfig): Promise<T> {
    options.baseURL = ApiConfig.currentContext.ApiPath;
    options.headers = options.headers || {};
    options.headers['Accept-Language'] = Locale.resolveCulture();
    options.withCredentials = true;

    try {
        const response = await AXIOS_ADAPTER(options);

        return response.data;
    }
    catch (error) {
        throw new ApiError(error);
    }
}

这是一个初始测试,以查看我是否可以使它正常工作,但是不幸的是,resolveCulture调用依赖于window对象,因为它是针对Web应用程序的。

我的问题是我该如何模拟ajax调用,以便可以看到传入和传出了哪些参数,以便断言请求的行为符合预期。

1 个答案:

答案 0 :(得分:0)

如果您使用axios进行api调用。您可以使用axios-mock-adapter npm模块模拟api调用。看看下面的链接,其中我已使用Jest和axios-mock-adapter测试了axios api调用。

https://codesandbox.io/s/5vq2qv67on

https://github.com/ctimmerm/axios-mock-adapter