我刚开始从角度1.48开始迁移 - > 1.61 我离开了一个拒绝通过的单元测试。 我们想验证我们编写的指令将来不会改变,以便它始终保留在require属性中。
这是指令定义:
angular.module('ourApp')
.directive('ourdirective', ['$timeout', function($timeout) {
return {
restrict: 'AE',
require: 'ngModel',
scope: {
options:'=?',
max:'=',
ngModel : "="
},
templateUrl: 'ourhtmltemplate.html'
link: function(scope, elt, attrs, ctrl) { // some code here }
这是我们为那个编写的单元测试。您可以假设没有任何类型的编译错误,并且其他测试飞得很高。
it('should throw if no ng model present', function() {
expect(function() {
buildElement("<ourdirective ></ourdirective>");
}).toThrowError();
};
function buildElement(html) {
element = angular.element(html);
$compile(element)($rootScope);
$rootScope.$digest();
$rootScope.select = {}
isolatedScope = element.isolateScope();
$rootScope.$apply(function() {});
}
我们正在使用以下套餐:
&#34; angular&#34;:&#34; 1.6.1&#34;, &#34;棱角分明&#34;:&#34; 1.6.1&#34;, &#34; jasmine-expect&#34;:&#34; 1.22&#34;, &#34;业力&#34;:&#34; ^ 0.12.31&#34;, &#34; karma-jasmine&#34;:&#34; ^ 0.3.5&#34;, &#34; karma-jasmine-matchers&#34;:&#34; ^ 0.1.3&#34;, &#34; karma-phantomjs-launcher&#34;:&#34; ^ 0.1.4&#34;,
任何帮助都会得到最多的帮助。