AngularJS测试 - 模拟按键并获取输入值

时间:2014-08-21 08:49:04

标签: angularjs jasmine jasmine-jquery

我目前使用jasmine来测试我的angularjs代码,并且我有一些类似autocomplete的指令,当用户在输入中输入一些字符时,它应该开始从服务器请求数据。

现在,这是我的测试代码:

        var element = linkingFn(scope);

    var $input = $("input", element);
    expect($input.length).toBe(1);

    var keyVal = 111;   // 'o'
    $input.trigger({
        type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
    });
    keyVal = 110;   // 'n'
    $input.trigger({
        type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
    });
    keyVal = 101;   // 'e'
    $input.trigger({
        type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
    });

    // THIS DOES NOT WORK
    expect($input.val()).toBe("one");

$ input.val()始终为空。我的理解是,因为它没有在浏览器中运行,所以没有事件被触发(显然),因此没有设置val()。那么我的选择是什么?

0 个答案:

没有答案