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

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • After Effects Tutorials w/ Mikey

    After Effect

    24 HAZİRAN 2009
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010