模拟按钮单击似乎是非常简单/标准的操作。但是,我无法在Jest.js测试中使用它。
这是我尝试过的(也可以使用jquery进行此操作),但似乎没有触发任何操作:
import { mount } from 'enzyme';
page = <MyCoolPage />;
pageMounted = mount(page);
const button = pageMounted.find('#some_button');
expect(button.length).toBe(1); // it finds it alright
button.simulate('click'); // nothing happens
#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);
});
绝对按钮模拟器是一款模拟经营游戏,游戏主题就是点按钮、买升级,转生变强!
我正在制作一个鼓应用程序,我使用了键绑定,这样我就可以用键盘触发鼓的声音。 例如,我的的关键触发器是。我想做的是,当我按下时,在我的也会触发。所以实际上,看起来你真的在打鼓。 有什么想法可以让这成为可能吗?谢谢你们!:) 更多信息: 以下是我使用密钥绑定的方式: 我有一个名为KeyBind的类,它有6个返回类型Action的方法 在我的main表单中,我有6个方法也可以进行绑定。 然后我在Main
问题内容: 我正在使用Scrapy爬行网页。单击某些按钮时,仅会弹出一些我需要的信息(当然,单击后也会显示在HTML代码中)。 我发现Scrapy可以处理的形式(如登录)如图所示这里。但是问题在于没有表格可以填写,所以这不是我所需要的。 如何简单地单击一个按钮,然后显示我需要的信息? 我是否必须使用诸如机械化或lxml之类的外部库? 问题答案: Scrapy无法解释javascript。 如果你绝
我正在尝试在Selenium中测试图像按钮点击。 图像是事件,当我点击sgt消息出现我 超文本标记语言代码:
我想对我的服务进行单元测试。在我的服务中,我有一个构造函数,它是: ContractService.ts 我的模型看起来是这样的:(模型是来自sequelize-typescript的类) 所以我想用JEST创建我的单元测试。当我试图模仿contractModel时,它找不到方法,即使我试图模仿它。 我在想,怎样才是嘲弄这个合同模型的正确方法。
null 如上所示,它导出了一些命名函数,而且重要的是 使用了 。 开玩笑地说,当我为 编写单元测试时,我希望模拟 函数,因为我不希望 中的错误影响我为 编写的单元测试。我的问题是我不确定最好的方法是: 如有任何帮助/洞察力,我们将不胜感激。