Sap-testing-navigation

提供:Dev Guides
移動先:案内検索

SAPテスト-ナビゲーション

SAPテストナビゲーションは、SAPシステムの各モジュールをカバーし、各機能に対して少なくとも1つのテストを実行することを保証します。 また、手動テストの労力が軽減され、SAPシステムのほとんどのテストパスがカバーされます。

OPAテストを実行して、SAP Testing Navigationを確認できます。 OPAは Open Source Programming 言語として知られており、主にWebアプリケーションの開発に使用されます。 OPAプログラムのコンパイルには、サーバーでNode.jsを使用し、クライアント側でJavaScriptを使用できます。

OPAを使用したテストの作成

OPAでは、* Qunit。*で3つのオブジェクトを使用できます。これらの関数は、実行するアクションをOPAが把握できるように、テストで定義する必要があります。

  • Given -手配を渡す。
  • When -実行するアクション。
  • その後-アサーション。

次の例は、Qunitで3つのオブジェクトすべてを使用する方法を示しています-

jQuery.sap.require("sap.ui.test.Opa");
jQuery.sap.require("sap.ui.test.opaQunit");

opaTest("press a Button", function (Given, When, Then) {
  //Arrangements
   Given.iStartMyApp();

  //Actions
   When.iPressOnTheButton();

  //Assertions
   Then.theButtonShouldHaveADifferentText();
}

次のステップは、3つの関数を定義することです。

関数の定義

var arrangements = new sap.ui.test.Opa ({
   iStartMyApp : function (){
      return this.iStartMyAppInAFrame("../indexl");
   }
});

上記の関数では、アプリはindexlと呼ばれるページで実行されると想定しています。 OPAテストはtest/opalフォルダーにあります。

配置の定義

var actions = new sap.ui.test.Opa ({

   iPressOnTheButton : function (){
      return this.waitFor ({
         viewName : "Main", id : "pressMeButton", success : function (oButton) {
            oButton.$().trigger("tap");
         },
         errorMessage : "No Button found"
      });
   }
})

アサーションの定義

var assertions = new sap.ui.test.Opa ({

   theButtonShouldHaveADifferentText : function () {
      return this.waitFor ({
         viewName : "Main",
         id : "pressMeButton",

         matchers : new sap.ui.test.matchers.PropertyStrictEquals ({
            name : "text",
            value : "got pressed"
         }),

         success : function (oButton) {
            Opa.assert.ok(true, "The button's text changed to: " + oButton.getText());
         },

         errorMessage : "No change in Button's text"
      )}
   }
})

OPAテストの実行

sap.ui.test.Opa.extendConfig ({
   arrangements : arrangements,
   actions : actions,
   assertions : assertions,
   viewNamespace : "view."
});