【发布时间】:2015-07-09 00:37:51
【问题描述】:
我遇到的问题是我的应用中有一个控制器,我使用的类似 <div ng-controller='LogbookEditCtrl'> </div> 并且这个控制器中有一个 $element 提供程序,我需要修改该元素。
describe('LogbookEditCtrl', function(){
'use strict';
beforeEach(module('logbooks.edit'));
it('should create "logbook" model', inject(function($controller) {
var scope = {},
// THIS EXPLODES BECAUSE IT SAYS THE $element PROVIDER WAS NOT FOUND, because there
// is no html element of course..the controller is being created on its own.
ctrl = $controller('LogbookEditCtrl', {$scope: scope});
}));
});
我尝试了类似以下的方法,但它再次说找不到 $element 提供程序:
beforeEach(inject(function(_$element_) {
var element = compile('<div></div>');
$element = element;
}));
【问题讨论】:
-
您是否在测试中包含了 elementprovider .js 文件?即使你嘲笑它,它也需要包含在内。
-
您收到的确切错误信息是什么?
-
错误是:错误:未知提供者:elementProvider
-
你所说的 elementprovider.js 是什么意思?我没遇到过,不知道你的意思。
标签: javascript angularjs unit-testing jasmine