Я хотел написать модульный тест, чтобы подтвердить, что моя логика «в ином случае» работает правильно. Это, как я ожидал, чтобы сделать это:
it('should handle unknown routes properly', inject(function($location, $rootScope) {
$location.path('/unknown');
$rootScope.$digest();
expect($location.path()).toBe('/yikes');
}));
Однако то, что я обнаружил, что я должен был впрыснуть $ маршрут, чтобы сделать эту работу испытания. Имейте в виду, что единичный тестовый код не должен был использовать $ route, но, видимо, ему нужно было создать экземпляр, чтобы правильно расположить $ location.
Вот вам plunkr, если вас интересует более подробная информация. Почему $ route должен быть включен только при модульном тестировании $ location?
Я вижу много дискуссий, которые, кажется, связаны: