【发布时间】:2014-11-04 21:05:59
【问题描述】:
我对 angular / jasmine / promise / mocking 测试有点搞砸了。
我有一段代码:
factory.login = function(user, pwd) {
AuthenticationResource.login( {}, {"username" : user, "password" : pwd},
factory.onLoginSuccess,
factory.onLoginFailure
);
};
那我试着写一个测试:
it('login', function() {
// give
// 1. make 'authenticationResource.login' return a promise that will be successfully resolved
var deferred = $q.defer();
var promise = defered.promise;
authenticationResource.login = function() {
//deferred.resolve(loginResponse);
return deferred.promise;
};
// 2. call 'factory.login' and make sure that 'onLoginSuccess' function was invoked as expected
// then
//expect(..
});
你能给我指出正确的方向吗?似乎这一切看起来与我对 Java/Mockito 的看法有些不同。?
那么AuthenticationResource本身就在这里:
angular.module('main.resources').factory('AuthenticationResource', ['$resource', function ($resource) {
return $resource('/rest/authenticate/:path',
{path: "@path"}, //parameters default
{
login: { method: "POST", params: { path: "login" } },
logout: { method: "POST", params: { path: "logout" } }
});
}]);
【问题讨论】: