Jasmin wird nicht zurückgesetzt Spion nach jedem test spec
Habe ich die folgende Skillung.
describe("SN.ExitHistory", function() {
var exitHistory;
beforeEach(function() {
SN.Utils = jasmine.createSpy("utils").andCallFake(function() {
function readSNCookie(cookieName, key) {
return "google.com";
}
function isUndefinedOrNull(param) {
return (param == null) || (param === "null");
}
function createSNCookie(snCookieName, key, value, lifeTime) {
}
var me = {
readSNCookie : readSNCookie,
isUndefinedOrNull : isUndefinedOrNull,
createSNCookie : createSNCookie
};
return me;
})();
exitHistory = SN.ExitHistory();
});
it("return last exit link", function() {
expect(exitHistory.getLastExitLink()).toEqual("google.com");
});
});
exitHistory.getLastExitLink
intern verwenden SN.Utils
.
Nachdem der test fertig ist Jasmin nicht entfernen spy object-utils. Im nächsten test-suite auch ich sehe die gleichen utils vorhanden. Gibt es eine Möglichkeit zum zurücksetzen des spy-Objekt nach jedem test wird gemacht?
Anstatt Spion, wenn ich ein neues Objekt erstellen für utils, das Verhalten ist dasselbe. Was ist dann der Unterschied zwischen einem Spion und aktuelle Objekt-in diesem Szenario.
Mich korrigieren, wenn ich falsch bin.
InformationsquelleAutor Sourabh | 2012-08-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem vor einiger Zeit und nach Tagen des Kampfes fand ich die Lösung. Wenn Sie verwenden eine andere Art und Weise Ihre Spionin zurückgesetzt werden, so versuchen Sie mit
Spione sind hier beschrieben:
https://github.com/pivotal/jasmine/wiki/Spies
createSpy
ist veraltet und es gibt einen Kommentar in den Quellen vorcreateSpy
definition, dass Sie sollten nicht diese interne Methode.und diese Antwort ist die richtige, durch die Art und Weise, es zu lösen, wird der Autor die Probleme
ah, sorry, es ist
jasmine.Spy()
was nicht erlaubt ist, genannt zu werden: > Hinweis: <b>nicht</b> aufrufennew jasmine.Spy()
direkt - ein Spion muss erstellt werden mitspyOn
,jasmine.createSpy
oderjasmine.createSpyObj
jedenfallsspyOn
ist das, was der Autor braucht.createSpy
ist nur passend für die Spionage-Funktionen, nicht Objekt-gebundene Methoden.Dies funktioniert nicht mit Jasmin 1.0.3 (und soweit ich sagen kann, von der 1,3-source-code mit 1.3): für meinen aktuellen 1.0.3-basierte test suite es sagt, '<METHOD-NAME> hat schon ausspioniert auf'. Ich bin das zurücksetzen der Spion mit
<OBJECT>.<METHOD>.wasCalled = false;
beim testen von weiteren Erwartungen.Ich weiß nicht, wo Sie die Informationen gefunden, die
createSpy
ist veraltet - es bietet eine leicht andere Verwendung, alsspyOn
und nicht sagen, dass die in 1.3.1 KommentareInformationsquelleAutor elmendalerenda