4
我有以下規格。Jasmine在每個測試規格後都不重置間諜
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
。
測試完成後,Jasmine不會刪除間諜對象的實用程序。在下一個測試套件中,我也可以看到相同的utils。每次測試完成後有沒有辦法重置間諜對象?
而不是創建間諜,如果我爲utils創建一個新的對象,行爲是相同的。那麼在這種情況下間諜和實際對象之間有什麼區別。
糾正我,如果我錯了。
'createSpy'現在已經過時並且在源評論'createSpy'定義之前你不應該使用這種內部方法。 – 2012-08-21 10:14:47
這個答案是對的,順便說一句,它會解決作者的問題 – 2012-08-21 10:23:02
啊,對不起,它是'jasmine.Spy()',這是不允許被調用的: >注意:做不是調用'new jasmine.Spy()'直接 - 間諜必須使用'spyOn','jasmine.createSpy'或'jasmine.createSpyObj'創建。無論如何,spyOn是作者需要的東西。 'createSpy'只適用於間諜功能,而不適用於對象綁定方法。 – 2012-08-21 11:26:55