TypeError: Modul ist nicht eine Funktion AngularJS & Jasmin
In meinem Beispiel-app habe ich test-runner wie diese
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<!--angular-->
<script src="../../../Scripts/angular.min.js"></script>
<!--jasmine-->
<img src="../../../Content/jasmine/jasmine_favicon.png" />
<link href="../../../Content/jasmine/jasmine.css" rel="stylesheet" />
<script src="../../../Scripts/jasmine/jasmine.js"></script>
<script src="../../../Scripts/jasmine/jasmine-html.js"></script>
<script src="../../../Scripts/jasmine/boot.js"></script>
<!--angular mocks-->
<script src="../../../Scripts/angular-mocks.js"></script>
<!--app tests-->
<script src="../../FavoritesController.js"></script>
<script src="FavoritesController.Tests.js"></script>
</body>
</html>
FavoritesController:
var module = angular.module('AngularSampleApp', []);
var FavoritesController = module.controller('FavoritesController', function favoritesController($scope) {
$scope.phones = [
{
'name': 'Nexus S',
'snippet': 'Fast just got faster with Nexus S.'
},
{
'name': 'Motorola XOOM™ with Wi-Fi',
'snippet': 'The Next, Next Generation tablet.'
},
{
'name': 'MOTOROLA XOOM™',
'snippet': 'The Next, Next Generation tablet.'
}
];
});
FavoritesController.Tests.js
describe('FavoritesController', function () {
beforeEach(module('AngularSampleApp'));
it('should create "phones" model with 3 phones', inject(function ($controller) {
var scope = {},
ctrl = $controller('FavoritesController', { $scope: scope });
expect(scope.phones.length).toBe(3);
}));
});
Aber ich bin immer:
TypeError: Modul ist nicht eine Funktion
Fehlermeldung, nachdem ich meine tests. Bin ich etwas fehlt?
Sie würde beinhalten müssen eckig.spottet, cdnjs.cloudflare.com/ajax/libs/angular.js/1.x.x/..., wobei x ein.x ist in der version der Winkel, den Sie verwenden.
danke, ich aktualisierte meine Frage, und ich erhalte die gleiche Fehlermeldung. Noch.
Vielleicht etwas überschreiben Sie das Modul auf das window-Objekt? haben Sie versucht, mit eckig.mock.Modul? Haben Sie versucht, tut eine Konsole.anmelden, um zu sehen, was ist Modul?
eckig.mock sieht aus wie definiert, wenn ich Konsole.log(eckige.mock.Modul) ist nicht definiert. komisch.
Ja, ich denke, Sie sind nicht mit der neuesten version von angular. Was tut das Modul, geben Sie obwohl?
danke, ich aktualisierte meine Frage, und ich erhalte die gleiche Fehlermeldung. Noch.
Vielleicht etwas überschreiben Sie das Modul auf das window-Objekt? haben Sie versucht, mit eckig.mock.Modul? Haben Sie versucht, tut eine Konsole.anmelden, um zu sehen, was ist Modul?
eckig.mock sieht aus wie definiert, wenn ich Konsole.log(eckige.mock.Modul) ist nicht definiert. komisch.
Ja, ich denke, Sie sind nicht mit der neuesten version von angular. Was tut das Modul, geben Sie obwohl?
InformationsquelleAutor Teoman shipahi | 2015-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
angular-mocks.js
nach Jasmin sonst Funktionen wiemodule
oderinject
werden nicht definiert.Darüber hinaus neu definieren
module
:Also entweder Sie benennen Sie die variable oder setzen Sie den code in ein IIFE.
window.jasmine
definiert ist, inboot.js
, so dass die einbezogen werden müssen, bevorangular-mocks.js
.Bitte siehe meine aktualisierte Frage, noch immer gleicher Fehler. Ich werde download-Winkel-dieses mal von github anstelle von nuget. Mal sehen, ob es machen Unterschied.
Ich aktualisiert meine Antwort.
omg, es war im Zusammenhang mit den Variablen name und position der Referenz-glaube ich. geh mal zu Mittag Essen! vielen Dank 🙂
InformationsquelleAutor a better oliver
Versuchen Sie diese Zeile in den tag-Körper:
InformationsquelleAutor Sergio Esteban