Ich habe eine angularjs Anwendung, die ich mit yeoman erzeugt habe. In der karma.conf.js ist ein Verweis auf test / mock / ** / *. Js. Ich habe Probleme herauszufinden, wie ich diesen Ordner benutze. Derzeit habe ich einen einfachen Service:
%Vor%und ein Test
%Vor%Das funktioniert. Aber ich frage mich, ob ich den Mock-Ordner aus der Karma.conf.js für die Mocking-Funktion verwenden könnte. Ist es möglich, das Mock-Teil in den Mock-Ordner zu verschieben und für alle Komponententests zu verwenden?
Ich konnte kein Beispiel oder Dokumentation für diesen Ordner finden. Kann mir bitte jemand auf ein Beispiel oder eine Dokumentation hinweisen, wie man den Mock-Ordner benutzt.
Im Grunde habe ich so etwas gemacht, wenn ich angle-mocks.js betrachte:
Nehmen wir an, die App heißt ql. und ich habe einen LoginService, den ich spotten möchte:
mocks / servicesMock.js sieht so aus:
%Vor%Dann kann ich in meinen Tests $ loginServiceMock einchecken:
%Vor%Das Beispiel von @gerasalus ist nützlich, aber um die Frage zu beantworten:
mocks
ist nur ein Ordner, in den Sie Ihren Code einfügen können, um Ihr Projekt zu organisieren und den Code in Tests kurz und knapp zu halten. Indem Sie all Ihre Mocks an einem Ort aufbewahren, ist es einfacher, sie in Tests wiederzuverwenden. Das Kopieren von einem Test auf einen anderen wäre aus der Sicht von DRY eine schlechte Übung.
Sie könnten zum Beispiel einen Dienst namens "Foo"
haben %Vor%Dann könntest du einen Mock dieses Dienstes namens 'FooMock' erstellen
%Vor%Und dann würden Sie Tests erstellen und alle Mocks injizieren, die Sie brauchen, wie in der Antwort von gerasulus gezeigt wird.
Tags und Links javascript angularjs unit-testing karma-runner yeoman