背景
我有一个简单的函数,它不允许在输入字段中输入数字:
rejectCharacterIfNumeric: function(e) {
var key = e.which;
key = String.fromCharCode(key);
var regex = /[0-9]|\./;
if (regex.test(key)) {
e.preventDefault();
}
},
我按如下方式调用该函数:
$("#testNumerics").keypress(function(e){ qqw.validate.rejectCharacterIfNumeric(e); } );
CHALLENGE
我有一个茉莉花测试来模拟输入条目,我希望输入忽略数字(I'm using autotype plug-in to simulate input)
describe("check only letters allowed in field", function(){
var originalTimeout;
it("it should have letters and no numbers", function(done){
var fixture = readFixtures('name.html');
setFixtures(fixture);
// don't allow numbers in first or last name fields
$("#testNumerics").keypress(function(e){ qqw.validate.rejectCharacterIfNumeric(e); } );
$('#testNumerics').autotype('He66', {delay: 200}); // autotype with delay so can see it in action
setTimeout(function() {
expect($("#testNumerics").val().length).toEqual(2); //
done();
}, 1800);
});
});
问题
Jasmine结果:
Expected 4 to equal 2.
问题是rejectCharacterIfNumeric(e)
函数似乎不适用于灯具,但是如果我添加一个console.log()
,我知道该函数被测试正确调用。< / p>
问题
有没有更好的方法来模拟文本输入的输入,使该功能在现实世界中表现得像?