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