Tôi đang gặp sự cố với đơn vị kiểm tra bộ định tuyến trong ứng dụng của mình, bộ định tuyến này được xây dựng trên bộ định tuyến Angular ui. Điều tôi muốn kiểm tra là liệu quá trình chuyển đổi trạng thái có thay đổi URL thích hợp hay không (sẽ có nhiều bài kiểm tra phức tạp hơn sau này, nhưng đây là lúc tôi bắt đầu.)
Đây là phần có liên quan trong mã ứng dụng của tôi:
angular.module('scrapbooks')
.config( function($stateProvider){
$stateProvider.state('splash', {
url: "/splash/",
templateUrl: "/app/splash/splash.tpl.html",
controller: "SplashCtrl"
})
})
Và mã thử nghiệm:
it("should change to the splash state", function(){
inject(function($state, $rootScope){
$rootScope.$apply(function(){
$state.go("splash");
});
expect($state.current.name).to.equal("splash");
})
})
Các câu hỏi tương tự trên Stackoverflow (và mã kiểm tra chính thức của bộ định tuyến ui) đề xuất gói lệnh gọi $ state.go trong $ apply là đủ. Nhưng tôi đã làm điều đó và trạng thái vẫn không cập nhật. $ state.current.name vẫn trống.