React componentWillMount的JS测试用例,异步测试API调用

问题描述

我正在尝试为以下代码编写测试用例,

export default class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = { userProfile: {} };
  }
  async componentWillMount() {
    const res = await fetch('/api/getUserDetails');
    console.log('App.jsx: RES- Result: ',res);
    let userProfile = await res.json();

    console.log('App.jsx: userProfile- Result: ',userProfile);

    userProfile = mapApiObjectToModel(userProfile);

    this.setState({ userProfile });
  }
}

mapApiObjectToModel:

import React from 'react';

export const mapApiObjectToModel = inputObj => {
  const outputObj = {};
  const authorizedRoles = ['Admin'];

  if (inputObj) {
    outputObj.fullName = '';

    if (inputObj.data) {
      outputObj.fullName = inputObj.data.data;
    }

    outputObj.role = 'Admin';
    outputObj.isAuthorized = authorizedRoles.includes(outputObj.role);
  }
  console.log('outputObj',outputObj);
  return outputObj;
};

res: Res:身体:(...) bodyUsed:true 标头:标头{} 好的:是的 重定向:false 状态:200 statusText:“” 类型:“基本” 网址:“ http:// localhost:7000 / api / getUserDetails” 原始:回复

userProfile:

数据:{firstName:“ Admin”,groupName:“ ROLE_ADMIN”} 状态:“成功” 原始:对象

我从互联网尝试了多种方法,似乎没有任何效果。因此没有发布我编写的代码。

任何帮助将不胜感激:)

解决方法

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

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

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