【学习任务】给 Alert 组件添加测试用例
9.9k
等19人参与

题目名称:给 Alert 组件添加测试用例

编程类型: Typescript

技能点: React,Typescript,React Testing Library,Jest

题目描述:

使用本章学到的测试知识,给 Alert 组件添加测试用例,注意应该根据 Alert 组件需求添加多个用例。

用例提示:
1 是否渲染正确的格式和类型(成功,默认,失败等)
2 点击关闭是否触发正确方法和更新界面

我的作业
去发布

登录后即可发布作业,立即

全部作业
import { fireEvent, render } from '@testing-library/react';
import { describe, expect, it } from 'vitest';
import Alert, { AlertType } from '.';

describe('test Alert component', function () {
  it('renders without crashing', function () {
    const wrapper = render(<Alert title='这是标题'></Alert>);
    const element = wrapper.getByTestId('alert-default');
    expect(element).toBeInTheDocument();
    expect(element).toHaveTextContent('这是标题');
  })

  it('renders default alert', function () {
    const wrapper = render(<Alert></Alert>);
    const element = wrapper.getByTestId(`alert-${AlertType.Default}`);
    expect(element).toHaveClass('alert alert-default');
  })

  it('renders success alert', function () {
    const wrapper = render(<Alert alertType={AlertType.Success}></Alert>);
    const element = wrapper.getByTestId(`alert-${AlertType.Success}`);
    expect(element).toHaveClass('alert alert-success');
  })

  it('renders warning alert', function () {
    const wrapper = render(<Alert alertType={AlertType.Warning}></Alert>);
    const element = wrapper.getByTestId(`alert-${AlertType.Warning}`);
    expect(element).toHaveClass('alert alert-warning');
  })

  it('renders danger alert', function () {
    const wrapper = render(<Alert alertType={AlertType.Danger}></Alert>);
    const element = wrapper.getByTestId(`alert-${AlertType.Danger}`);
    expect(element).toHaveClass('alert alert-danger');
    // 测试一下关闭按钮
    const closeEl = wrapper.queryByText('关闭') as HTMLElement;
    expect(closeEl).toBeInTheDocument();
    fireEvent.click(closeEl);
    expect(element).not.toBeInTheDocument();
  })
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
代码块
复制 预览
复制成功!
代码块
复制 预览
复制成功!
0
评论
提交于  2024-06-23 10:35:24

登录后即可查看更多作业,立即

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号