2013-07-28 18 views
6

私はクッキーを角張って設定する簡単なサービスを持っていますが、エンドツーエンドのテストで設定されたことをテストする明白な方法はありません。End-to-EndテストでAngularJS Cookieをどのようにテストしますか?

テストのコードは

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

のと同じくらい簡単です。しかし、私はテストする方法上の任意のドキュメントを見つけることができません。 $クッキー

  • http://docs.angularjs.org/api/ngCookies $は、cookiestore私も
    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; 
        } 
    }); 
    

    を試してみた
  • +0

    私はあなたのプログラムで、クッキーの値を効果的に外部のものにバインドするものであれば、クッキーで何かをやっていると思います。その代わりにテストしてみてください。 – jclancy

    +0

    私は実際にはそうではありません。クッキーはセッションのある時点で保存され、POSTリクエストとともに(自動的に)サーバーに送信されます。残念ながら、クッキーのためにUIの変更はありません。 –

    +0

    これは読んでいますか? http://pastie.org/4758669 – jclancy

    答えて

    0

    PhantomJSを使用する必要があるようです。

    PhantomJSは、JavaScript APIを備えたヘッドレスWebKitです。 は、DOMハンドリング、 CSSセレクター、JSON、Canvas、SVGなどのさまざまなWeb標準を素早くネイティブにサポートしています。 -​​

    このAPIではカスタムCookieがサポートされています。 テストの面では、おそらくこれが最良の選択です。 CasperJSを参照してページのナビゲーションをテストすることもできます。

    関連する問題