【发布时间】:2016-12-01 21:16:34
【问题描述】:
我有一个要测试用户输入的搜索栏。我正在使用 React 渲染视图并使用 Chai、Mocha 和 JSDom 编写测试。
这是我目前编写的简单测试
describe('Search', () => {
it('renders a search bar', () => {
const component = renderIntoDocument(
<Search />
);
const search_bar = scryRenderedDOMComponentsWithClass(component, 'input-group');
expect(search_bar.length).to.equal(1);
});
it('invokes a callback when the Add button is clicked', () => {
let search_term;
const clickHandler = (term) => search_term = term;
const component = renderIntoDocument(
<Search onClick={clickHandler}/>
)
const add_button = scryRenderedDOMComponentsWithTag(component, 'button');
Simulate.click(add_button[0]);
expect(search_term).to.equal('');
});
it('accepts user input from the search button and performs a regex check for invalid input', () => {
let search_term;
const clickHandler = (term) => search_term = term;
const component = renderIntoDocument(
<Search onClick={clickHandler} />
);
const add_button = scryRenderedDOMComponentsWithTag(component, 'button');
const search_bar = scryRenderedDOMComponentsWithClass(component, 'input-group');
Simulate.change(search_bar[0], {target: {value: 'FB'}});
expect(search_bar[0].state.value).to.equal('FB');
})
})
1) 我想测试用户在点击添加按钮之前是否输入了字符。
2) 我想测试用户没有在搜索词中输入任何数字或特殊字符,字符串需要只有字母。
如何模拟这些测试?
【问题讨论】:
标签: unit-testing reactjs