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

时间:2020-09-09 11:41:32

标签: user-interface tdd

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

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”} 状态:“成功” 原始:对象

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

任何帮助将不胜感激:)

0 个答案:

没有答案