2013-07-28 12 views
6

Mam prostą usługę ustawiania ciasteczek pod kątem, ale nie ma oczywistego sposobu na sprawdzenie, czy zostały ustawione w teście end-to-end.W jaki sposób testujesz pliki cookie AngularJS w testach end-to-end?

Kod do testowania jest tak proste jak

var splashApp = angular.module('splashApp', ['ngCookies']); 
splashApp.controller('FooterController', function ($location, $cookies) { 
    $cookies.some_cookie = $location.absUrl(); 
}); 

Ale nie mogę znaleźć żadnych docs na jak testować. Oto co znalazłem:

Próbowałem zostały również

angular.scenario.dsl('cookies', function() { 
    var chain = {}; 
    chain.get = function(name) { 
    return this.addFutureAction('get cookies', function($window, $document, done) { 
     var injector = $window.angular.element($window.document.body).inheritedData('$injector'); 
     var cookies = injector.get('$cookies'); 
     done(null, cookies); 
    }); 
    }; 
    return function() { 
    return chain; 
    } 
}); 

Ale to zwraca tylko.. pliki cookie dla przeglądarki nadrzędnej, a nie strona, którą chcę przetestować.

Wszelkie przykłady, jak to zrobić?

+0

Zakładam, że robisz coś z ciasteczkami, może zmieniając klasę CSS w swoim programie - wszystko, co skutecznie wiąże wartość pliku cookie z czymś zewnętrznym. Spróbuj zamiast tego przetestować? – jclancy

+0

Właściwie nie jestem. Pliki cookie są przechowywane w pewnym momencie sesji, a następnie wysyłane są (automatycznie) na serwer wraz z żądaniem POST. Niestety, nie ma zmiany interfejsu użytkownika z powodu plików cookie. –

+0

Czytałeś to? http://pastie.org/4758669 – jclancy

Odpowiedz

0

Wygląda na to, że musisz użyć PhantomJS.

PhantomJS to bezgłowy skrypt WebKit z interfejsem JavaScript API. To ma szybkie i natywne wsparcie dla różnych standardów internetowych: obsługa DOM, selektor CSS, JSON, Canvas i SVG. - PhantomJS website

Obsługuje niestandardowe pliki cookie w interfejsie API. Pod względem testowania jest to prawdopodobnie najlepszy wybór. Możesz również sprawdzić numer CasperJS, aby ułatwić nawigację po stronie testowej.

Powiązane problemy