如何使用axios-mock-adapter和自定义错误对象来模拟HTTP404

问题描述

我有一个重写的Axios函数,可以帮助我发出API请求。该函数的实现是,当API调用失败时,它将在error.customAttributes添加属性

try {
   const data = await getMeDataPlease(param);
} catch (error) {
  if (error.customAttributes.httpErrorStatus === 404) {
    error.userError = {} // anything
    throw error;
  }
}

我想测试此功能catch代码,它可以正确添加/构建error.userError对象。为此,我在模拟如下的Axios调用

describe('External Apis',() => {
  it('Get me data fails',async () => {
    const axiosMock = new MockAdapter(myCustomHttpClient());
    const url = 'my-data-url-goes-here';

    axiosMock.onGet(url).reply(404,{customAttributes: {httpErrorStatus:404});
    const data = await getEnrollments('username'); // in actual method the method fails on `if (error.customAttributes.httpErrorStatus === 404)` with undefined does not have `httpErrorStatus`
    console.log('data',data);
  });

但是我不能像这样模拟Axios请求,错误对象不包含我期望的customAttributes。请告知。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...