В моей главной describe
я следующие:Mocking Печенье с угловыми
beforeEach(inject(function(...) {
var mockCookieService = {
_cookies: {},
get: function(key) {
return this._cookies[key];
},
put: function(key, value) {
this._cookies[key] = value;
}
}
cookieService = mockCookieService;
mainCtrl = $controller('MainCtrl', {
...
$cookieStore: cookieService
}
}
Позже я хочу, чтобы проверить, как контроллер считает, если куки уже существует, поэтому гнездо следующие описания:
describe('If the cookie already exists', function() {
beforeEach(function() {
cookieService.put('myUUID', 'TEST');
});
it('Should do not retrieve UUID from server', function() {
expect(userService.getNewUUID).not.toHaveBeenCalled();
});
});
Однако, когда я вношу изменения в cookieService
, он не сохраняется в создаваемом контроллере. Я принимаю неправильный подход?
Спасибо!
EDIT: Обновлен код тестирования и это, как я использую $ CookieStore:
var app = angular.module('MyApp', ['UserService', 'ngCookies']);
app.controller('MainCtrl', function ($scope, UserService, $cookieStore) {
var uuid = $cookieStore.get('myUUID');
if (typeof uuid == 'undefined') {
UserService.getNewUUID().$then(function(response) {
uuid = response.data.uuid;
$cookieStore.put('myUUID', uuid);
});
}
});
Можете ли вы показать, как $ cookieStore используется в вашем контроллере? И как вы проверяете контроллер? –
Обновлено, дайте мне знать, если вам нужно больше тестового кода. – grivescorbett
Что вы подразумеваете под словом «он не остается в контроллере»? Вы хотите сказать, что ваш контроллер не использует макет? Или вы имеете в виду, когда вы вызываете '$ cookieStore.get()', вы не можете получить ожидаемое значение обратно? –