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

  • Blendtec

    Blendtec

    30 EKİM 2006
  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • Visual Life

    Visual Life

    3 Temmuz 2006