Jasmine - 测试数据输入到输入中

时间:2016-02-09 10:55:17

标签: javascript jquery jasmine

背景

我有一个简单的函数,它不允许在输入字段中输入数字:

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>

问题

有没有更好的方法来模拟文本输入的输入,使该功能在现实世界中表现得像?

0 个答案:

没有答案