example angularjs angular-mock teaspoon

angularjs - example - ng-href angular 4



módulo simulado angular que resulta en ''[Objeto objeto] no es una función'' (2)

Estoy tratando de crear algunas pruebas unitarias en Angular usando Jasmine que se ejecuta a través de Teaspoon. Las pruebas se están ejecutando, sin embargo, tengo una prueba simple para probar la existencia de un controlador que está fallando. Tengo la siguiente configuración de prueba.

//= 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 }); })); }) })

Las declaraciones requeridas son procesadas por Browserify, que maneja mis dependencias, pero también puedo conectar las ruedas dentadas que estoy usando para el ayudante de especificaciones.

Dentro de la aplicación que se requiere, tengo

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

Cuando ejecuto esta prueba, obtengo el siguiente error producido

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

He pasado bastante tiempo tratando de resolver esto, pero no tengo idea de lo que está pasando. Cualquier ayuda apreciada.


Browserify utiliza Node-style require , donde module es un objeto que puede usar para exportar funcionalidad:

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

angular-mocks.js intenta adjuntar una función a window.module , pero eso no es posible en Browserify / Node.

Al observar la fuente de angular.mock angulares , parece que angular.mock angulares también adjunta la función de module a angular.mock . Entonces, en lugar de usar el objeto de module global, debe usar angular.mock.module .


Yo tuve el mismo problema. Cambia esta línea:

beforeEach(module("app"))

a:

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