假设我有以下this.MAX_LENGTH在构造函数中设置常量的组件。
import PropTypes from 'prop-types';
import React from 'react';
class Input extends React.Component {
static propTypes = {
value: PropTypes.string.isRequired
};
constructor(props) {
super(props);
// An example constant
this.MAX_LENGTH = 1024;
}
render() {
return (
<label htmlFor="comment_body">
<textarea
className="comment-reply input-highlight-on-focus"
type="input"
name="comment[body]"
id="comment_body"
maxLength={this.MAX_LENGTH}
value={this.props.value} />
</label>
)
}
}
export default Input;
该MAX_LENGTH常量用于设置的最大长度textarea。
在我的 Jest 规范中,我想模拟 的值this.MAX_LENGTH,但我不确定如何设置该模拟。
这是我的 Jest 测试的外观(它使用chai并enzyme作为测试助手):
it('renders the textarea', () => {
// Mock the constant here to set a custom value of 99
// ????
const wrapper = mount(<Input value={'foo'} />)
const textarea = wrapper.find('.comment-reply').first();
expect(textarea).to.have.attr('maxLength', '99');
});
我可以????用模拟常量的值来代替什么?
我尝试阅读Jest 文档中的ES6 Class Mocks,但它似乎是在模拟整个导入的类,我不确定它如何应用于单个常量。
月关宝盒
相关分类