我想知道如何用params單元測試AngularJs $資源查詢。
我有這樣的:
services.js
angular.module('conciergeApp.services', ['ngResource'])
.factory('Reply', function($resource) {
return $resource('/api/reply/:id/');
});
controllers.js
conciergeControllers.controller('ReplyCtrl', ['$scope', 'Reply',
function($scope, Reply) {
$scope.hotel_replies = Reply.query({
hotel: $scope.hotel_id
});
}
]);
所以,這被這裏查詢的API端點:
'/api/reply/?hotel=<hotel_id>'
// aka
'/api/reply/?hotel=1'
這在手動測試時有效,但您如何對此進行單元測試?
With Jasmine spyOn
或$httpBackend
。哪個會好?
這可以用嗎?用茉莉花2.0和htmlRunner
spyOn(object, 'method').andCallFake(function({foo:bar}) {
return myMockObject
});
這裏有幾個位給你的系統。你想要單元測試哪部分?你想檢查你的控制器是否在回覆服務上進行了正確的調用,或者你想檢查回覆服務是否按預期使用$ resource,或者你想檢查$資源是否有效? – davestevens
@dst我想檢查'controller'是否使用指定的參數'?hotel__isnull = True'進行正確的調用,並且'$ resource'起作用。 –
我不認爲你需要檢查$資源是否正在工作 - 它是一個從角度的外部依賴關係,你可以假設它是在發佈之前進行單元測試的。你可以專注於單元測試你自己的代碼。 – davestevens