SORU
7 Mart 2013, PERŞEMBE


Nasıl açısal olayları test edebilirim?

Olayları doğru yayılan ya da yayınlanan bu test, ve olaylar elle tetiklemek için ihtiyacım var.

Bunu yapmak için en iyi yolu nedir?

CEVAP
7 Mart 2013, PERŞEMBE


Eğer sadece olay tetikleme bazı test ihtiyacı ve alıcı iseniz, ben böyle severim. Belirli bir olayı harekete sağlanması için ($emit-ed veya $broadcast-ed), casus gitmek yoludur. Veya $broadcast, $emit arayıp, böyle bir şey için sadece olacağını kapsamında bir başvuru gerekir:

spyOn(scope, "$emit")
//run code to test
expect(scope.$emit).toHaveBeenCalledWith("MY_EVENT_ID", other, possible, args);

Eğer ihtiyacın yok, istemiyor endişe ile ilgili tartışmalar geçirilen ile $emit, sen-ebilmek koymak bir $on $rootScope ve set bayrağı bilmek olay oldu üretilir. Şöyle bir şey:

var eventEmitted = false;
$rootScope.$on("MY_EVENT_ID", function() {
   eventEmitted = true;
});
//run code to test
expect(eventEmitted).toBe(true);

Bir olay yakalandığında çalışan test işlevselliği ($on) için, biraz daha kolay oluyor. Sadece $rootScope inject bir fonksiyon olsun ve sonra istediğiniz olay gönderin.

$rootScope.$broadcast("EVENT_TO_TEST", other, possible, args);
//expects for event here

Şimdi, bu olay işleme Direktifi testleri kurmak İçin bir emir veya bir denetleyicisi (veya her ikisi), https://github.com/vojtajina/ng-directive-testing bakın neler olurdu. Denetleyicisi testleri kurma, https://github.com/angular/angular-phonecat/blob/master/test/unit/controllersSpec.js#L27 bkz

Bu yardımcı olur umarım.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GamingAndTech

    GamingAndTec

    16 NİSAN 2013
  • GoProTutorials

    GoProTutoria

    18 NİSAN 2011
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008