0
私のthenとcatch関数を$ scope.customerinfoからテストしたいと思います。問題は私が正確にどのように知っているのですか?それからテストして、約束の約束をキャッチ
var app = angular.module('shop', ['ngRoute','ngResource'])
.factory('Customerservice', function ($resource) {
return $resource('http://localhost:8080/Shop/:customer',{customer: "@customer"});
})
.controller('customerController', function ($scope,Customerservice) {
$scope.customerinfo = CustomerService.get({customer: "Mark"});
$scope.customerinfo.$promise.then(function(info) {
return info;
}).catch(function(errorResponse) {
throw errorResponse;
});
});
イム
行わまだしかし、これは私のジャスミンのコードではありませんdescribe('Testing the customerinfo', function() {
var $scope;
var $q;
var deferred;
beforeEach(module('shop'));
beforeEach(inject(function($controller, _$rootScope_, _$q_) {
$q = _$q_;
$scope = _$rootScope_.$new();
deferred = _$q_.defer();
$controller('userController', {
$scope: $scope
});
}));
it('should reject promise', function() {
// I want to check if the catch option is working
});
});
それでは、どのように正確に私はこれを行うことができ、または私はコードをリファクタリングする必要がありますか?
のために呼び出すことができます行わパラメータを受け取り、私は本当に、コントローラのコードのポイントを理解していない:それは正確に成功した応答をマッピング同じ成功応答を返し、エラー応答をまったく同じエラー応答にマップします。とにかく戻ってきた約束は何もしません。 –
私がこれを行う唯一の理由は、非同期取得リクエストが完了するまで待つ必要があるからです(私は初心者ですが、この方法で動作します)。返された約束はありません。まだプログラミングと。私はちょうどその時をテストし、すぐに機能をキャッチしたい。 – member2
彼らは副作用がなく、戻り値がどこにも格納されていないので、方法はありません。それはちょうど無駄です。 –