我有點搞砸角/茉莉花/承諾/嘲笑測試。角/茉莉花/承諾/嘲諷測試
我有一段代碼:
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" } }
});
}]);
可能重複(http://stackoverflow.com/questions/22830391/unit- testing-in-angularjs-mocking-services-and-promises) – ses 2014-11-05 16:56:03