AngularJS Jasmine中的非确定性单元测试

时间:2015-04-17 21:40:50

标签: angularjs jasmine karma-jasmine

我有一个看似随意通过或失败的套件,我认为它可能与事件处理的异步性质有关,但我无法找到解决方案。我正在测试一个简单的指令,该指令阻止对enter键的默认操作(它在实际应用程序中的表单中使用)。

相关代码:

describe('preventSubmitOnEnter', function(){
            var e;
            var e2;
            var element;
            beforeEach(function(){
                element = $compile('<input type="submit" prevent-submit-on-enter />')($rootScope);
                $('body').append(element);
                e = $.Event('keypress');
                e.keyCode = 13;
                e.which = 13;
                $(element).trigger(e);


                e2 = $.Event('keypress');
                e2.keyCode = 110;
                e2.which = 110;
                $(element).trigger(e2);

            });
            afterEach(function(){
                $('input[type="submit"]').remove();
            });

            it('should prevent default event handling for enter keypress and do nothing otherwise', function(){
                expect(e.isDefaultPrevented()).toBe(true);
                expect(e.isPropagationStopped()).toBe(true);
                expect(e2.isDefaultPrevented()).toBe(false);
                expect(e2.isPropagationStopped()).toBe(false);

            });
        })

0 个答案:

没有答案