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

  • Bryan Smith

    Bryan Smith

    12 Mart 2006
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • Videogamerz | Call of Duty

    Videogamerz

    5 NİSAN 2012