栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

模拟Jest中的按钮单击

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

模拟Jest中的按钮单击

#1使用笑话

这就是我使用笑话嘲笑回调函数来测试click事件的方式

import React from 'react';import { shallow } from 'enzyme';import Button from './Button';describe('Test Button component', () => {  it('Test click event', () => {    const mockCallBack = jest.fn();    const button = shallow((<Button onClick={mockCallBack}>Ok!</Button>));    button.find('button').simulate('click');    expect(mockCallBack.mock.calls.length).toEqual(1);  });});

我还使用了一个称为酶的模块
酶是一种测试实用程序,可让您更轻松地断言和选择您的React组件

#2使用Sinon

另外,您可以使用另一个称为sinon的模块,该模块是Javascript的独立测试间谍,存根和模拟。这是什么样子

import React from 'react';import { shallow } from 'enzyme';import sinon from 'sinon';import Button from './Button';describe('Test Button component', () => {  it('simulates click events', () => {    const mockCallBack = sinon.spy();    const button = shallow((<Button onClick={mockCallBack}>Ok!</Button>));    button.find('button').simulate('click');    expect(mockCallBack).toHaveProperty('callCount', 1);  });});

#3使用自己的间谍

最后,您可以使自己的天真间谍(除非您有充分的理由,否则我不建议您使用这种方法。)

function MySpy() {  this.calls = 0;}MySpy.prototype.fn = function () {  return () => this.calls++;}it('Test Button component', () => {  const mySpy = new MySpy();  const mockCallBack = mySpy.fn();  const button = shallow((<Button onClick={mockCallBack}>Ok!</Button>));  button.find('button').simulate('click');  expect(mySpy.calls).toEqual(1);});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376063.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号