Javascript 角度-在';它';功能测试失败,为什么?
作为一个测试新手,我正在尝试为控制器编写一些Jasmine/Karma测试。我得到了一个示例测试来处理和构建,Javascript 角度-在';它';功能测试失败,为什么?,javascript,angularjs,testing,jasmine,karma-runner,Javascript,Angularjs,Testing,Jasmine,Karma Runner,作为一个测试新手,我正在尝试为控制器编写一些Jasmine/Karma测试。我得到了一个示例测试来处理和构建,$controller被传递到it块函数的参数中。这会导致测试通过 我已经成功地为这个应用程序的其他控制器编写了测试,我还没有看到$controller通过测试。所以我试着按照我所知道的去做,但是当我移除$controller的那一刻,测试失败了,因为它正在寻找依赖项(我应该在每次之前通过中的$provide.value给出依赖项) 这是控制器代码- (function() { 'u
$controller
被传递到it
块函数的参数中。这会导致测试通过
我已经成功地为这个应用程序的其他控制器编写了测试,我还没有看到$controller
通过测试。所以我试着按照我所知道的去做,但是当我移除$controller
的那一刻,测试失败了,因为它正在寻找依赖项(我应该在每次之前通过中的$provide.value
给出依赖项)
这是控制器代码-
(function() {
'use strict';
angular
.module('myApp')
.controller('EntryAddController', EntryAddController);
function EntryAddController($scope, $state, moment, $sanitize, dogList, catList, months, frequencies, EntryFactory, $modal, toastr, $log) {
var vm = this;
var now = moment();
var tomorrow = now.add(1, 'days').toDate();
var to = now.subtract(1, 'days').add(12, 'months').toDate();
vm.fromDay = tomorrow;
vm.minDay = tomorrow;
start();
function start() {
//some logic here
}
})();
下面是我得到的示例代码(注意it
block)——
那么,为什么当我从it
块中的函数参数中删除$controller
时,它会抛出这个错误呢
Error: [$injector:unpr] Unknown provider: dogListProvider <- dogList <- EntryAddController
vs
在it()
语句中,可以为函数包含的唯一参数是done
()
您在函数中调用它$controller
这一事实与此无关,它实际上是done
函数,而不是您的控制器
您应该从函数中删除该参数并解决未知的提供程序错误。在it()
语句中,您可以为函数包含的唯一参数是done
()
您在函数中调用它$controller
这一事实与此无关,它实际上是done
函数,而不是您的控制器
您应该从函数中删除参数并解决未知的提供程序错误。谢谢!!我想是这样的,但不是100%确定。谢谢!!我想是这样,但不是100%确定。
Error: [$injector:unpr] Unknown provider: dogListProvider <- dogList <- EntryAddController
it('expects fromDate and toDate to be defined', function($controller) {
vm = $controller('EntryAddController', { $scope: $scope });
expect(vm.fromDay).toBeDefined();
});
it('expects fromDay to be defined', function() {
vm = $controller('EntryAddController', { $scope: $scope });
expect(vm.fromDay).toBeDefined();
});
it("should support async execution of test preparation and expectations", function(done) {
value++;
expect(value).toBeGreaterThan(0);
done();
});