簡體   English   中英

angular mock`module`導致'[Object object]不是函數'

[英]angular mock `module` resulting in '[Object object] is not a function'

我正在嘗試使用通過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使用Node-style require ,其中module是可用於導出功能的對象:

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

angular-mocks.js嘗試將一個函數附加到window.module ,但這在Browserify / Node中是不可能的。

通過角度模擬源來看,角度模擬似乎也將module功能附加到angular.mock 因此,您必須使用angular.mock.module而不是使用全局module對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM