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

  • Dumb Stupid Videos

    Dumb Stupid

    26 Kasım 2013
  • technodromeband's channel

    technodromeb

    28 NİSAN 2011
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013