w moim głównym describe
Mam następujący:szyderczy Cookies z Kątowymi
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
}
}
Później chcę przetestować jak kontroler wierzy czy ciasteczko już istnieje, więc gniazdo następuje opisać:
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();
});
});
Jednak gdy dokonuję zmiany na cookieService
, nie będzie to trwało w tworzonym kontrolerze. Czy podejmuję niewłaściwe podejście?
Dzięki!
EDIT: Zaktualizowany kod testowania i to jak używam $ 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);
});
}
});
Czy możesz pokazać, w jaki sposób $ cookieStore jest używane w twoim kontrolerze? A jak przetestujesz kontroler? –
Zaktualizowany, daj mi znać, jeśli potrzebujesz więcej kodu testowego. – grivescorbett
Co masz na myśli, mówiąc: "nie utrzymuje się w kontrolerze"? Czy chcesz powiedzieć, że twój kontroler nie korzysta z makiety? Czy masz na myśli, że gdy nazwiesz '$ cookieStore.get()', nie możesz odzyskać oczekiwanej wartości? –