mam realizacji testów jednostkowych dla jonowego aplikacji i trzeba sprawdzić, czy nie ma żadnych zdarzeń były transmitowane na $ rootScope
expect($rootScope.$broadcast).not.toHaveBeenCalled();
Problemem jest czasami istnieją Wysyłane są zdarzenia $ locationChangeStart i $ locationChangeSuccess, co powoduje niepowodzenia moich testów. Wydaje się, że jonowy v1.3.0 wyzwala tych, w kodzie poniżej
// update browser
$rootScope.$watch(function $locationWatch() {
var oldUrl = trimEmptyHash($browser.url());
var newUrl = trimEmptyHash($location.absUrl());
var oldState = $browser.state();
var currentReplace = $location.$$replace;
var urlOrStateChanged = oldUrl !== newUrl ||
($location.$$html5 && $sniffer.history && oldState !== $location.$$state);
if (initializing || urlOrStateChanged) {
initializing = false;
$rootScope.$evalAsync(function() {
var newUrl = $location.absUrl();
var defaultPrevented = $rootScope.$broadcast('$locationChangeStart', newUrl, oldUrl,
$location.$$state, oldState).defaultPrevented;
W „inicjalizacji” flaga jest prawda w powyższym kodzie i to wyzwala $ rootScope. $ Transmisję. Pytanie - dlaczego to się dzieje? A jaki jest najlepszy sposób, aby poradzić sobie z tą sytuacją? W tej chwili dodałem $ rootScope. $ Digest(); przed podjęciem działań w moich testach, które wydawało się rozwiązać problem jednak nie jestem pewien, czy to ważne rozwiązanie
Dziękuję