Tom*_*zyk 6 testing unit-testing reactjs jestjs
我正在尝试用React和Jest编写简单的测试.
零件:
import React from "react";
class Task extends React.Component {
render() {
let onDelete = this.props.onDelete;
return (
<li>
<div className="collapsible-header"><i className="material-icons" onClick={() => onDelete(this.props.taskId)}>delete</i>{this.props.title}</div>
<div className="collapsible-body"><p>{this.props.description}</p></div>
</li>
);
}
};
Task.propTypes = {
title: React.PropTypes.string.isRequired,
taskId: React.PropTypes.number.isRequired,
onDelete: React.PropTypes.func.isRequired,
description: React.PropTypes.string
};
Task.defaultProps = {
description: ''
};
export default Task;
Run Code Online (Sandbox Code Playgroud)
测试
import React from 'react';
import Task from '../src/components/Task';
import renderer from 'react-test-renderer';
test('Task should require properties', () => {
const component = renderer.create( //this will give me React warnings which I would like to assert
<Task></Task>
);
});
Run Code Online (Sandbox Code Playgroud)
现在我想断言title,taskId并且onDelete是Task组件所必需的.我将得到React警告,不指定它们(或传递不同的类型).
您可以使用间谍来查明反应是否引发了任何类型的异常。许多人使用一个名为Sinon.js 的库。从文档中“测试间谍是一个记录参数、返回值、其值以及所有调用抛出的异常(如果有)的函数”。
这里有一个更详细描述的很棒的解决方案: