Ich verwende Karma, Jasmin, Typoskript, Einheitentest für die Helloworld-Anwendung von https://angular.io/docs/js/latest/quickstart.html zu schreiben.Komponententest mit Typoskript und Karma
Unten ist der Testcode:
///<reference path="../typings/jasmine/jasmine.d.ts"/>
import {
MyAppComponent
} from '../spray1';
describe("name is Alice",() => {
var comp = new MyAppComponent();
it("verify name",() => {
expect(comp.name).toBe("Alice");
});
});
tsc (mit "--module Commonjs") transpiles diesen Test-Code in:
///<reference path="../typings/jasmine/jasmine.d.ts"/>
var spray1_1 = require('../spray1');
describe("name is Alice", function() {
var comp = new myAppComponent_1.MyAppComponent();
it("verify name", function() {
expect(comp.name).toBe("Alice");
});
});
Karma nicht die Unit-Test auszuführen:
Uncaught Error: Module name "../myAppComponent" has not been loaded yet for context: _. Use require([]) http://requirejs.org/docs/errors.html#notloaded at /Users/spray1/web2/node_modules/requirejs/require.js:141
Chrome 43.0.2357 (Mac OS X 10.10.3): Executed 0 of 0 SUCCESS (0 secs/0 secs)
Wenn ich TSC mit "--module amd" verwende, ist der transpilierte Testcode:
define(["require", "exports", '../spray1'], function (require, exports, spray1_1) {
describe("name is Alice", function() {
var comp = new spray1_1.MyAppComponent();
it("verify name", function() {
expect(comp.name).toBe("Alice");
});
});
});
"Karma beginnen Test/karma.conf.js" warf unten Fehler auf den transpiled js Dateien:
Uncaught Error: Mismatched anonymous define() module: function (require, exports, spray1_1) { describe("name is Alice", function() { var comp = new spray1_1.MyAppComponent(); it("verify name", function() { expect(comp.name).toBe("Alice"); }); }); } http://requirejs.org/docs/errors.html#mismatch at /Users/spray1/web2/node_modules/requirejs/require.js:141 Chrome 43.0.2357 (Mac OS X 10.10.3): Executed 0 of 0 ERROR (0.04 secs/0 secs)
Wie Sie sehen, habe ich Mühe, um es so oder so funktioniert (--module commonjs/amd). Welcher Weg ist der richtige Weg und wie kann er funktionieren? Schätze jede Hilfe!
Wie verweisen Sie die Dateien? Verwenden Sie mehrere Skript-Tags? – Fenton
Verwenden Sie gulp zum Kompilieren und Ausführen von Typoskript und deren jeweiligen Testfall. Lesen Sie https://medium.com/@bojzi/anatomy-of-a-large-angular-application-f098e5e36994#.mmfb9jtml für weitere Informationen. – Ajay