나는 지난 며칠 동안 SO와 인터넷 전체를 조사해 봤는데 내가 무엇이 빠졌는지 알 수 없다. (각도 1.4.7)각도 1.x 테스트에서의 조롱 의존성
내가 작업하고있는 응용 프로그램은 크고 각 컨트롤러는 많은 의존성이있는 경향이 있습니다. 지역 서비스와 제 3 자 모두. 나는 모듈을 조롱하고 의존성을 주입한다. 그러나 그 의존성이 등록 된 모듈을 조롱하지 않으면 "[$ injector : unpr] Unknown provider :"오류가 발생합니다. 상황을 악화시키기 위해, 그 의존성은 다른 의존성을 가질 수도 있습니다. 이제 나는 "angular.mock.module"이라는 토끼 구멍을 내려갈 것입니다. 모든 모듈을 모의 할 수 있었다면 작동합니다.
정확하지는 않지만 블로그 게시물이 없으므로 기존 사양 파일이나 동영상에 비슷한 문제가 있음을 확신합니다. 나는 뭔가를 놓치고 있어야합니다. 이것은 ngMock이나 BardJS와 같은 도우미를 사용하든 상관없이 발생합니다.
나는 조롱하는 서비스의 개념을 이해하지만, 여기서는 그다지 적용되지 않는다고 생각합니다. 각도 Ui 부트 스트랩으로 뛰어 들지 않고 모든 것을 하나씩 조롱하기 시작합니다. 아래의 테스트는 그대로 작동합니다. 컨트롤러에 다른 종속성이있는 경우 (예 : "DataService", 나는 모듈과 모든 의존성 모듈을 모의해야 할 것이다. 미리 감사드립니다! 나는 그것이 단순해야한다는 것을 안다.
describe("HomeController", function() {
beforeEach(angular.mock.module("app.home"));
beforeEach(angular.mock.module("app.notify"));
beforeEach(angular.mock.module("ngDialog"));
describe("controller", function() {
var scope;
var controller;
var HomeController;
beforeEach(inject(function($rootScope, _Notify_, _ngDialog_, $controller) {
scope = $rootScope.$new();
controller = $controller;
HomeController = controller("HomeController", {
$scope: scope
});
Notify = _Notify_;
ngDialog = _ngDialog_;
}));
it('should exist', function() {
expect(HomeController).to.be.defined;
})
});