У меня есть следующая спецификация.Жасмин не сбрасывает шпион после каждого теста.
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
внутренне использовать SN.Utils
.
После завершения теста Жасмин не удаляет утилиты для шпионских объектов. В следующем наборе тестов я также вижу те же самые utils. Есть ли способ сбросить объект-шпион после завершения каждого теста?
Вместо создания шпиона, если я создаю новый объект для utils, поведение будет таким же. Тогда в чем разница между шпионом и фактическим объектом в этом сценарии.
Исправьте меня, если я ошибаюсь.
'createSpy' теперь осуждается и есть комментарий в источниках, прежде чем' определения createSpy' что вы не должны использовать этот внутренний метод. –
, и этот ответ прав, кстати, он решит проблемы автора –
ах, извините, это 'jasmine.Spy()', который не разрешается вызывать: > Примечание: Do не call 'new jasmine.Spy() 'непосредственно - шпион должен быть создан с использованием' spyOn', 'jasmine.createSpy' или' jasmine.createSpyObj' так или иначе, 'spyOn' - это то, что нужно автору. 'createSpy' подходит только для шпионских функций, а не для привязанных к объектам методов. –