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
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.
Nasıl bir dizi belirli bir değeri vars...
Nasıl bir dize Amaç C boşsa test edebi...
Objective-C, nesne türü nasıl test ede...
Nasıl bir değişkeni bash bir sayı ise ...
Nasıl konsoldan bir AngularJS bir hizm...