编程语言
首页 > 编程语言> > javascript – Jasmine和Karma:无法找到变量运行

javascript – Jasmine和Karma:无法找到变量运行

作者:互联网

我是否需要一个插件/ lib来使用run()并使用Jasmine等待()?我正在查看Jasmine wiki页面的异步测试:https://github.com/pivotal/jasmine/wiki/Asynchronous-specs.

他们没有提到需要特殊的lib /插件,所以我假设runs()和wait()应该开箱即用.

我的代码看起来像这样(它包含在描述中):

it('test', function() {
    runs(function() {

    });
});

我得到:ReferenceError:未定义运行

我的业力配置的相关部分是:

    files: [
        'bower_components/jquery/dist/jquery.min.js',
        'bower_components/angular/angular.js',
        'bower_components/angular-mocks/angular-mocks.js',
        'src/*.js',
        'test/*.spec.js'
    ],


    frameworks: ['jasmine'],

    browsers: ['PhantomJS'],

    plugins: [
        'karma-spec-reporter',
        'karma-chrome-launcher',
        'karma-firefox-launcher',
        'karma-jasmine',
        'karma-phantomjs-launcher'
    ],

解决方法:

基本上,如果要运行异步测试,则应使用$httpBackend服务,该服务在刷新时将触发正确的事件,并且您的测试将顺利运行.

编辑:
每个angularjs定时动作都包含在promises和digest循环中.如果$timeout触发了触发它的摘要周期,你可以执行$timeout.flush().

例如,您可以:

expect($scope.timedvariable).toEqual('before timeout value');
// Flush the timeout service
$timeout.flush();
// the actions within the $timeout are executed
expect($scope.timedvariable).toEqual('value after timeout');

标签:javascript,angularjs,testing,jasmine,karma-runner
来源: https://codeday.me/bug/20190717/1491264.html