我在应用程序的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调用,以便可以看到传入和传出了哪些参数,以便断言请求的行为符合预期。
答案 0 :(得分:0)
如果您使用axios进行api调用。您可以使用axios-mock-adapter npm模块模拟api调用。看看下面的链接,其中我已使用Jest和axios-mock-adapter测试了axios api调用。