Javascript 角度-在';它';功能测试失败,为什么?

Javascript 角度-在';它';功能测试失败,为什么?,javascript,angularjs,testing,jasmine,karma-runner,Javascript,Angularjs,Testing,Jasmine,Karma Runner,作为一个测试新手,我正在尝试为控制器编写一些Jasmine/Karma测试。我得到了一个示例测试来处理和构建,$controller被传递到it块函数的参数中。这会导致测试通过 我已经成功地为这个应用程序的其他控制器编写了测试,我还没有看到$controller通过测试。所以我试着按照我所知道的去做,但是当我移除$controller的那一刻,测试失败了,因为它正在寻找依赖项(我应该在每次之前通过中的$provide.value给出依赖项) 这是控制器代码- (function() { 'u

作为一个测试新手,我正在尝试为控制器编写一些Jasmine/Karma测试。我得到了一个示例测试来处理和构建,
$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();
});