如何检查位置是否已更改以及控制器是否已加载

How to check if location is changed and controller loaded

我正在尝试为执行 POST 然后更改页面的控制器编写单元测试。如何检查路径是否已加载以及该路径的控制器是否已加载?

您无法检查与给定路径关联的控制器是否已加载。那将不再是单元测试,而是端到端测试。被测控制器的职责是改变位置,这是你单元测试应该关心的。

要测试位置是否已更改,请监视其方法:

spyOn($location, 'url');
theController.doSomething();
// TODO check the POST request, flush the $httpBackend, etc.
expect($location.url).toHaveBeenCalledWith('/the/expected/new/url');