【发布时间】:2017-02-01 14:29:04
【问题描述】:
我想测试我的 Authentication.Login 服务功能。
在这个服务中调用另一个服务和一个 cookiestore.put 方法。
我想模拟这两个函数。但我仍然得到一个错误:/
我用 Jasmine 中的 spyon 功能尝试过,但它不起作用:
spyOn('base64', 'encode').and.returnValue(username + ';' + password);
spyOn('cookie', 'put').and.returnValue(username);
谁能帮帮我?
这是身份验证服务:
function (Base64, $http, $cookieStore, $rootScope, $q) {
//initialize service
var service = {};
service.Login = function (username, password) {
//initialize promise object for asynchron behavior of the data
var deferred = $q.defer();
var authdata = Base64.encode(username + ':' + password);
//put login data in global variable to access in the root scope
$rootScope.globals = {
currentUser: {
username: username,
authdata: authdata
}
};
//put base64 data in header
$http.defaults.headers.common['Authorization'] = 'Basic ' + authdata;
//put login data in cookie to keep user logged in, if he refresh the page
$cookieStore.put('globals', $rootScope.globals);
【问题讨论】:
标签: angularjs unit-testing jasmine