programing

"[객체]가 함수가 아니다"를 초래하는 각도 모의 'module'

linuxpc 2023. 3. 2. 22:01
반응형

"[객체]가 함수가 아니다"를 초래하는 각도 모의 'module'

Teaspoon을 통해 실행되는 Jasmine을 사용하여 Angular에서 몇 가지 유닛 테스트를 만들려고 합니다.테스트는 실행 중이지만 장애가 발생하고 있는 컨트롤러의 존재를 테스트하기 위한 간단한 테스트가 있습니다.다음과 같은 테스트 설정이 있습니다.

//= require spec_helper

require("angular");
require("angular-mocks");
var app = require("./app");


describe("My App", function() {

  describe("App Controllers", function() {

    beforeEach(module("app"))

    it("Should have created an application controller", inject(function($rootScope, $controller){
      var scope = $rootScope.$new();
      ctrl = $controller("ApplicationCtrl", { $scope: scope });
    }));

  })

})

요구 사항은 종속성을 처리하는 Browserify에 의해 처리되지만 스펙 도우미에 사용하는 스프로킷에 연결할 수도 있습니다.

필요한 앱에

require("angular");
var controllers = require("./controllers");

var app = angular.module("app", [
  "app.controllers"
]);

exports.app = app;

이 테스트를 실행하면 다음과 같은 오류가 발생합니다.

Failure/Error: TypeError: '[object Object]' is not a function (evaluating 'module("aialerts")')

나는 이것을 알아내기 위해 꽤 많은 시간을 보냈지만 무슨 일이 일어나고 있는지 모르겠다.아무쪼록 잘 부탁드립니다.

저도 같은 문제가 있었어요.다음 행 변경:

beforeEach(module("app"))

대상:

beforeEach(angular.mock.module("app"))

Browserify는 노드 스타일을 사용합니다.require,어디에module는 기능을 내보내기 위해 사용할 수 있는 객체입니다.

console.log(module); // {exports: {}}

angular-mocks.mocks.mocks는 함수를 부가하려고 합니다.window.module단, Browserify/Node에서는 불가능합니다.

앵귤러 모크 소스를 살펴본 결과 앵귤러 모크도 또한 부착되어 있는 것으로 보입니다.module기능하다angular.mock글로벌을 사용하는 대신moduleobject를 사용해야 합니다.angular.mock.module.

언급URL : https://stackoverflow.com/questions/20968320/angular-mock-module-resulting-in-object-object-is-not-a-function

반응형