我的应用程序中有很多组件可以响应不同的按键,到目前为止,我使用TestUtils.Simulate.keyDown
的所有测试都没有工作。似乎keyDown
只是简单明了是行不通的。
这是我要测试的组件:
说明.js
var React = require('react/addons');
var Description = React.createClass({
render : function () {
return (
<div className="description">
<input type="text" ref="input"/>
</div>
)
}
});
module.exports = Description;
这是一个失败的简单测试:
描述-test.js
var React = require('react/addons');
var TestUtils = React.addons.TestUtils;
var expect = require('expect');
var Description = require('../description');
describe('Description', function () {
it('updates input value on key press', function () {
var description = TestUtils.renderIntoDocument(<Description/>);
var input = React.findDOMNode(description.refs.input);
expect(input.value).toEqual(''); //This passes
TestUtils.Simulate.keyDown(input, {key : "a"});
expect(input.value).toEqual('a'); //This fails
});
});
我有多个依赖于TestUtils.Simulate.keyDown
. 这些测试尝试按下多种不同的键(其中 Enter 是最突出的),但没有一个起作用。我试过使用keyPress
and keyUp
,但不知道这些函数是否存在(对令人惊讶的不完整文档大喊大叫)。
我只是错误地使用了该功能吗?或者这里还有什么问题?
我正在通过 npm 使用 karma-cli 来运行我的测试,如果这有区别的话。