![](/img/trans.png)
[英]“Argument 'module' is not a function, got Object” - Angular module import with webpack
[英]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.