Day 12 MSW实战

MSW实战

今天我们来实战一个msw的使用,首先我们先随意建立一个component,我是建立一个Users component.

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

type UserType = {
  name: string;
  city: string;
};

const Users = () => {
  const [users, setUsers] = useState<UserType[]>([]);

  useEffect(() => {
    const getUsers = async () => {
      const userList = await axios.get('http://localhost:5000/users');
      const { data } = userList;

      if (data) {
        setUsers(data);
      }
    };

    getUsers();
  }, []);

  return (
    <>
      {users.length > 0
        ? users.map((user) => {
            return (
              <div key={user.name} role="user">
                {user.name}
              </div>
            );
          })
        : null}
    </>
  );
};

export default Users;

上面这一段程序是建立一个users的列表,一开始状态设为空阵列,当我们透过axios去拉取server的资料,取得资料时users会列印出来,我们在昨天有时做一个handlers所以我们透过axios抓取资料时我们的msw会拦截并回传一个内含三笔资料的array

import { render, screen } from '@testing-library/react';
import Users from '../Users';

describe('<Users />', () => {
  test('should get three lines user data', async () => {
    render(<Users />);

    const users = await screen.findAllByRole('user');
    expect(users).toHaveLength(3);
  });
});

我们这个就可以取得三笔资料


<<:  CSS微动画 - 倒数计时,绘制圆饼图!

>>:  Day 12 - Length of Last Word

Flutter API Get using Bloc state management and http plugin

Flutter API Get using Bloc state management and ht...

忘记 PPPoE 拨接的帐号和密码

Wireshark解PPPoE的帐号和密码 设定好之後 打开 Wireshark 开始抓封包 重开机...

DAY 17 取得资料库资料并将含LINE emoji的讯息传出

小弟自开学後白天上课晚上上班,每天时间不多,进度比较缓慢,请多见谅 上篇将资料存至资料库,这篇要将资...

[Day 10] Reactive Programming - Reactor (generate & create)

前言 之前介绍产生Flux 的方法都是固定的遵循特定逻辑的,若今天有需要客制化特殊的逻辑来产生资料,...

pure component

在写 Vue.js 或 React 的过程,一定都会听过这个名词。 并不是所有的 component...