ich eine Klasse in Typoskript geschrieben:Testing Typoskript Module mit Paketabhängigkeiten
import * as uuid from "uuid";
export class IdGenerator {
getId() {
return uuid.v4();
}
}
Diese eine Abhängigkeit von der UUID-Paket hat, die ich mit NPM installiert haben.
Ich stelle dies mit anderem Code, der in TypeScript geschrieben wurde, mit webpack im Browser bereit. Abhängigkeiten sind gelöst, alles ist gut.
Ich mag die Klasse testen, so schreibe ich den folgenden Test:
import { IdGenerator } from "../src/IdGenerator";
describe("An id generator",() => {
const idGenerator = new IdGenerator();
it("generates an id",() => {
expect(idGenerator.getId()).not.toBeNull();
});
});
Ich benutze Chutzpah mit folgenden Konfiguration:
{
"Framework": "jasmine",
"TestHarnessReferenceMode": "AMD",
"TestHarnessLocationMode": "SettingsFileAdjacent",
"EnableTestFileBatching": true,
"References": [
{
"Path": "node_modules/requirejs/require.js",
"IsTestFrameworkFile": true
}
],
"Compile": {
"Mode": "External",
"Extensions": [ ".ts" ],
"ExtensionsWithNoOutput": [ ".d.ts" ]
},
"Tests": [
{ "Path": "Components/test" }
]
}
Beim Versuch, mit Chuzpe zu testen, hat ich die folgender Fehler:
Also füge ich einen Verweis auf den Pfad in chutzpah.json, die g Es beseitigt diesen Fehler, löst jedoch einen Fehler für eine der Abhängigkeiten von uuid aus. Ich füge eine Referenz für die Abhängigkeit hinzu, erhalte dann einen weiteren Abhängigkeitsfehler und so weiter.
Im Idealfall möchte ich, dass alle Abhängigkeiten auf die gleiche Weise gelöst werden wie beim Bundle, das im Browser bereitgestellt wird.
Sollte ich die Idee aufgeben, meine TypeScript-Dateien mit Paketabhängigkeiten auf diese Weise zu testen und stattdessen die Abhängigkeitsinjektion zu untersuchen und die Paketabhängigkeiten in den getesteten TypeScript-Dateien nachzuahmen? Vielleicht auch separate JavaScript Tests für das Bundle erstellen? Oder gibt es einen anderen Ansatz, der das Testen meines TypeScript-Codes mit den Paketabhängigkeiten ermöglicht?
Können Sie eine Probe zur Verfügung stellen, die ich vor Ort ausgeführt werden kann? Ich bin gespannt auf den Unterschied zwischen webpack und chutzpah, um zu sehen, ob ich helfen kann. –
Projekt hier: https://github.com/alataffective/testing-typescript danke. – fractor