Requests/Pagesのテスト

2469 ワード

テストの目的
  • 各ページをテストする要求は、開始から終了まで正常に
  • 実行される.
  • 各ページにロードされたデータをテスト
  • を正常に表示します.
    ページ/リクエストをテストする目的と、ルーティング/controllerをテストする目的は同じです.しかし、このセクションのテストの重点は、ルーティングが正しく動作しているかどうか、controllerが正常に実行されているかどうか、テンプレートがダウンロードされているかどうか、viewが正しくレンダリングされているかどうか、準備ができているかどうかを簡単にチェックすることです.バックグラウンドには多くのリクエストとダウンロードがトリガーされるはずです.そのため、controllerがあなたのページ(例えばbodyラベルにhtmlタグを付けたり...)をマークすると、ページが利用できることがわかります.その後、サイトのすべてのページとルーティングにアクセスできます.
    テストは主にMidwayテストとE 2 Eテストを使用します.
    Midwayテスト
    <!-- lang: js -->
    //
    // test/midway/requestsSpec.js
    //
    describe("Midway: Testing Requests", function() {
    
      var tester;
      beforeEach(function() {
        if(tester) {
          tester.destroy();
        }
        tester = ngMidwayTester('App');
      });
    
      it("should goto the videos_path by default", function(done) {
        tester.visit('/', function() {
          expect(tester.viewElement().html()).to.contain('app-youtube-listings');
          done();
        });
      });
    
      it("should have a working video_path request", function(done) {
        var url = ROUTER.routePath('video_path', { id : 10 });
        tester.visit(url, function() {
          var $params = tester.inject('$routeParams');
          expect(parseInt($params.id)).to.equal(10);
    
          expect(tester.viewElement().html()).to.contain('app-youtube-profile');
          done();
        });
      });
    
      it("should have a working other_path request", function(done) {
        var url = ROUTER.routePath('other_path');
        tester.visit(url, function() {
          expect(tester.viewElement().html()).to.contain('other page');
          done();
        });
      });
    
    });
    

    E 2 Eテスト:
    <!-- lang: js -->
    //
    // test/e2e/requestsSpec.js
    //
    describe("E2E: Testing Requests", function() {
    
      beforeEach(function() {
        browser().navigateTo('/');
      });
    
      it('should have a working /videos page', function() {
        browser().navigateTo('#/');
        expect(browser().location().path()).toBe("/videos");
        expect(element('#ng-view').html()).toContain('data-app-youtube-listings');
      });
    
      it('should have a working /other page', function() {
        browser().navigateTo('#/other');
        expect(browser().location().path()).toBe("/other");
    
        //try removing the controller and this will fail
        expect(element('#ng-view').html()).toContain('success');
      });
    
    });