Yasemin bir nesne olmadan bir işlevi casusluk için kullanıyor
Jasmine yeniyim ve sadece bunu kullanmaya başladım. Herhangi bir nesne ile ilişkili değildir (yani genel) hangi işlevleri bir sürü dosya js kütüphanesi var. Nasıl bu işlevleri üzerinde casusluk için ne yapmam lazım?
Nesne olarak pencere/belge kullanarak denedim, ama casus fonksiyonu olsa bile işe yaramadı. Ben de aşağıdaki gibi sahte bir nesne içinde sarma çalıştı
var fakeElement = {};
fakeElement.fakeMethod = myFunctionName;
spyOn(fakeElement, "fakeMethod");
ve test
expect(fakeElement.fakeMethod).toHaveBeenCalled();
Bu casus işe yaramadı ya da çalışmıyor
CEVAP
Eğer fonksiyon tanımlıyorsanız:
function test() {};
O zaman, bu eşittir:
window.test = function() {} /* (in the browser) */
spyOn(window, 'test')
çalışması gerekir.
Eğer o değilse de olmalıdır:
test = jasmine.createSpy();
Eğer bunların hiçbiri çalışıyorsanız, başka bir kurulum ile devam ediyor.
fakeElement
tekniğin perde arkasında neler oluyor, çünkü eserlerini sanmıyorum. Orijinal globalMethod hala aynı kodu gösteriyor. Casusluk yaptığı proxy, ama sadece bir nesne bağlamında. Eğer test kod fakeElement üzerinden çağrı bulabilirsen işe yarar, ama genel fns vazgeçmek mümkün olurdu.
Std::kullanarak üye işlevi ile bağlama...
(Ya da ihmal) kullanmak için zaman var...
JQuery ile JavaScript nesne için form ...
Neden&; dizi yineleme için... "* o kad...
Nasıl PHP bir karma parolalar için bcr...