Javascriptアプリケーションのテスト作成

Javascriptには、IoTの世界において多くのプラットフォームで動作するという大きな利点があります。実行環境としては、node.jsとの組み合わせで動くことが多いでしょう。

しかし、Javascriptのテストのために膨大な量のJavascriptのテスト用コードを書くことは本末転倒であり、時間と作業の浪費と感じる人も多いでしょう。

ぜひ、FTを使って、楽しんでテストを行ってください。

テスト仕様書Excelの起動

../_images/selectDic.png

最初に起動すると、コントロール辞書の設定を促すメッセージ(Webテストの場合と同様)が表示されます。 直後に開かれるファイルダイアログで、コントロール辞書ファイルを設定します。 コントロール辞書は、後に変更することができます。ここで選択しない場合、ファイルの再起動が必要になります。

../_images/startJSExcel.png

起動直後には、著作権が表示されます。

テスト仕様書シートの作成

../_images/menuNewJSTest.png

クイックアクセスツールバ―から、「新しくテストを作成する」を選択します。

../_images/newSheetJS.png

「NewSheet」と名付けられたシートが生成されます。

※ 既存のシートをExcelの機能によりコピーして作成した場合には、以下を手動で行ってください。

  1. 「レイアウトを走査する」を実行する。

  2. 必要に応じて、ReservedDicシートにおけるコピー元の情報を元に、新規シートの情報を追加・修正する。



メソッド/関数の読み込み

ローカルファイルを読み込む(Java11から非推奨)

ローカルにあるJavascriptもしくはhtmlファイル(.js,.html)から、テストする関数/メソッドの情報を読み取る手順を説明します。

../_images/readJS.png

クイックアクセスツールバ―から、「ローカルファイルを読み込」を選択すると、ファイルダイアログが開きます。ファイルを指定すると、

../_images/readJS2.png

定義されているメソッド/関数の一覧が表示されます。テストするメソッド/関数を選択します。

../_images/initialJSheet.png

メソッド/関数の引数および返却値の情報がExcelファイルに転記されます。

メソッドの場合、メソッド名の先頭に「.」が設定されます。

※ 実行時にブラウザを使用する場合には、実行環境の環境設定においてブラウザ名と対応するドライバのパスを指定しておく必要があります。

※ Java11以降でJavaScriptがサポート外になる可能性が高く、非推奨とします。代替の方法は検討します。

Webから読み込む

Webブラウザに表示されているページから、テストする関数/メソッドの情報を読み取る手順を説明します。

../_images/readJSbyHtml.png

クイックアクセスツールバ―から、「Webから読み込む」を選択すると、待ち受けダイアログが開きます。 ブラウザを操作して、目的のWebページを表示して、

../_images/waitHtml4JS.png

OKボタンを押下すると、定義されているメソッド/関数の一覧が表示されます。

../_images/initialJSheet.png

テストするメソッド/関数を選択します。

../_images/initialJSheet.png

メソッドの引数および返却値の情報がExcelファイルに転記されます。

メソッドの場合、メソッド名の先頭に「.」が設定されます。

※ 実行時にブラウザを使用する場合には、実行環境の環境設定においてブラウザ名と対応するドライバのパスを指定しておく必要があります。



関数/メソッド実行前の準備

テストする対象がオブジェクトのメソッドであるか、引数がオブジェクトであり、その初期化が必要であるならば、以下の準備を行います。

デフォルト値のオブジェクトを設定する(レベル1)

配列もしくはオブジェクトの初期値をJsonもしくはJavascriptコードとして、オブジェクト辞書ファイルのReservedDicシートもしくはTest仕様書ファイルのReservedDicシートに記述することができます。

オブジェクト辞書ファイルで初期値を共通化することにより、TestSuiteシートにおける作業は、そのオブジェクトの一部の属性を設定することだけになります。

例えば、シート名「SX」で使用するn番目の引数を初期化するコードを、

A列

B列

SX.$n#initialize

n番目の引数を初期化するJsonもしくはJavascriptコード

のように記述していきます。

このようなコードはプロジェクトの標準化を担当するアーキテクトが行った方が効率的な場合が多いでしょう。

※ Json文字列の中ではシングルクォートの使用を避けてください。

※ Javascriptコードでは生成したオブジェクトを必ず「return」する必要があります。

テスト対象のオブジェクトを設定する(レベル1)

メソッドをテストする場合、オブジェクトをオブジェクト欄に指定します。 指定する方法は、

  • 読み込んだJavascript中の変数

  • htmlの要素 例: document.getElementById("ABC1234")

  • $('CSSセレクタ') jQueryでオブジェクトを指定する書式を使用します。

があります。

関数/メソッド実行時の設定

引数オブジェクトの属性オブジェクトを「.」つなぎのパスにより指定し、その値を設定します。 属性値の設定にあたっては、Jsonを使用することができます。

大域変数を設定する(レベル1)

Javascript関数から参照する大域変数(例えばhtmlの要素やvar修飾子なしで定義された変数)を設定するには、結合セル「IN」で指定されている入力領域の右にある「GLOBAL」域において、

*属性へのパス欄

大域変数(例 xvar)もしくはその属性(例:xvar.atrx)を指定します。

*パラメータ値欄

値をJsonで設定します。

引数の値や属性値を設定する(レベル1)

引数を直接設定する

n番目の引数$nは

引数

属性へのパス

パラメータ値

$n

$nのJson

のようにパラメータ値の欄にJsonもしくは読み込んだJavascriptコード中の変数を指定します。属性へのパスは空白のままです。

n番目の引数$nの属性attrxを設定するには、

引数

属性へのパス

パラメータ値

$n

.attrx

attrxに指定するJson文字列

のように属性へのパスを指定して、上記と同様の方法で指定することができます。 attrxの先頭に「.」を付けることに、注意してください。

※ 設定する値が文字列である場合、「"」もしくは「'」で囲む必要があります。

※ 大域変数を値に設定する場合には、変数名を直接指定します。

引数のメソッドにより設定する

引数が設定のためのメソッドを持っている場合、次のように、それを直接呼ぶことができます。

引数

属性へのパス

パラメータ値

$n

.funcA($[1])

arg1

メソッドの引数が複数ある場合、パス欄については「($[1],$[[2],...)」、パラメータ値欄については「arg1,arg2,..」のようにカンマつなぎで指定します。

属性値のバリエーションを追加する

../_images/popmenu_addvalue2.png

パラメータ値欄のセルで右クリックメニューを開き、「パラメータ欄追加」を選択すると、引数の値/属性値を設定する行が追加されます。



関数/メソッド実行後の検証

結合セル「OUT」で指定された領域で検証方法を指定します。

  • 大域変数

GLOBALで指定された領域で検証します。

  • 返却値 $_で指定された領域で検証します。

  • オブジェクト $0で指定された領域で検証します。

  • 引数

 n番目の引数の検証は$nで指定された領域で行います。

引数と返却値を検証する(レベル1)

属性のパス欄で指定した引数や返却値の属性と比較します。

パラメータ値欄の書式:

  • 正規表現

    =~正規表現を指定する文字列

  • 完全一致

    =文字列

  • 大小比較

    =数字

    >数字

    <数字

    >=数字

    <=数字

※ 検証方法のバリエーションはパラメータ値欄を増やすことにより行います。

※ パラメータ値欄が文字列である場合、「"」もしくは「'」で囲む必要があります。

※ 大域変数と比較する場合には、変数名を指定します。大域変数を使用した演算式やメソッド呼び出しも記述できます。

その他の操作

テストを実行する

クイックアクセスツールバーから「テストを実行する」を選択します。 アクティブなシートからデータベースに保存されているパラメータを使用して、テストを実行します。

※ パラメータを変更してテストする場合には、一度、データベースを更新する必要があります。

CIツールからテストを実行する場合、コマンドラインから行うことができます。

java -jar FTのjarfile -nodisplay -testcase:["キーワード","ログファイルのパス",0,0,true] -onlyauto:true

キーワードば、TestSuiteのシート名を指定します。

その他のオプションとしては、

  • -v:版数 実行時の版数を指定する。

  • -properties:Json形式 SystemプロパティをJson形式で指定する。

があります。

テストを削除する

クイックアクセスツールバーの「データベースから削除する」を選択すると、Activeなシートに対応するテストをデータベースから削除します。

レイアウトを走査する

手でシートのレイアウトを編集した後に、この処理を行います。以後の処理をマクロが正しく実行できるようにするためです。

ブックを移入する

最新版のFTが公開されるタイミングで、旧版のブックを移行する必要が生じる場合があります。そのような場合、クイックアクセスツールバーで「ブックを移入する」を選択すると、旧版の内容を最新版のブックに読み込むことができます。、

辞書を選択する

辞書を切り替えることができます。

マニュアルを開く

FTのマニュアルサイトを読み込みます。