テストTemplates,Partials&Views

2209 ワード

テストの目的
  • テストテンプレートが設定され、サービス側からダウンロードされた
  • テストテンプレートが正しいcontroller
  • に割り当てられています.
  • テストテンプレートは、正しいviewまたはincludeに割り当てられています.

  • テンプレートは、AngularJSアプリケーションに注入できる独立したHtmlコードで、Viewの各部分を構成します.テンプレートがngViewでレンダリングされるか、ngInculdeでレンダリングされるかにかかわらず、テンプレートHtmlコードはページに簡単に簡単に注入できるはずです.
    Viewとインポートアクションは$templateCacheサービスが提供するキャッシュメカニズムによって機能します.したがって、テンプレートコードをMockしたい場合は、テンプレートキャッシュに対応するtemplateUrlキャッシュKeyにHtmlを追加するだけです.
    Midwayテスト:
    <!-- lang: js -->
    //
    // test/midway/templates/templatesSpec.js
    //
    describe("Midway: Testing Templates", function() {
    
      it("should load the template for the videos page properly",
        function(done) {
    
        var tester = ngMidwayTester('App');
        tester.visit('/videos?123', function() {
          var current = tester.inject('$route').current;
          var controller = current.controller;
          var template = current.templateUrl;
          expect(template).to.match(/templates\/views\/videos\/index_tpl\.html/);
          tester.destroy();
          done();
        });
      });
    
    });
    

    E 2 Eテスト:
    <!-- lang: js -->
    //
    // test/e2e/templates/templatesSpec.js
    //
    describe("E2E: Testing Templates", function() {
    
      beforeEach(function() {
        browser().navigateTo('/');
      });
    
      it('should redirect and setup the videos page template on root', function() {
        browser().navigateTo('#/');
        expect(element('#ng-view').html()).toContain('youtube_listing');
      });
    
      it('should load the watched videos template into view', function() {
        browser().navigateTo('#/watched-videos');
        expect(element('#ng-view').html()).toContain('youtube_listing');
      });
    
      it('should load the watched video template into view', function() {
        browser().navigateTo('#/videos/123');
        expect(element('#ng-view').html()).toContain('profile');
      });
    
      it('should redirect back to the index page if anything fails', function() {
        browser().navigateTo('#/something/else');
        expect(element('#ng-view').html()).toContain('youtube_listing');
      });
    
    });