小编Mat*_*erg的帖子

我该如何测试用Typescript进行api调用的React Hook“ useEffect”?

我正在使用Typescript和新的React钩子为一个简单的React应用编写一些有趣的酶测试。

但是,我似乎无法正确模拟在useEffect挂钩内进行的api调用。

useEffect进行api调用,并useState使用“ setData” 更新状态“ data”。

然后将对象“数据”映射到表中与其对应的表单元格中。

似乎应该可以通过模拟的api响应和酶安装来轻松解决,但是我不断收到错误消息,告诉我act()用于组件更新。

我尝试了act()许多方法,但无济于事。我试过用axiosfetch 代替,并使用酶浅和react-test-library的渲染,但是似乎没有任何效果。

组件:

import axios from 'axios'
import React, { useEffect, useState } from 'react';

interface ISUB {
  id: number;
  mediaType: {
    digital: boolean;
    print: boolean;
  };
  monthlyPayment: {
    digital: boolean;
    print: boolean;
  };
  singleIssue: {
    digital: boolean;
    print: boolean;
  };
  subscription: {
    digital: boolean;
    print: boolean;
  };
  title: string;
}

interface IDATA extends Array<ISUB> {}

const initData: IDATA = []; …
Run Code Online (Sandbox Code Playgroud)

typescript jestjs enzyme axios react-hooks

12
推荐指数
2
解决办法
9041
查看次数

标签 统计

axios ×1

enzyme ×1

jestjs ×1

react-hooks ×1

typescript ×1