SORU
1 Mart 2012, PERŞEMBE


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
1 Mart 2012, PERŞEMBE


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AutoHotkey Tutorials

    AutoHotkey T

    29 Mayıs 2010
  • case LianLi

    case LianLi

    28 Mayıs 2010
  • ipsy

    ipsy

    1 EKİM 2012