テスト

作成されたプログラムが期待通りに動作するかどうかを確認するには、以下の方法があります。

  • 実行してみて、実行画面で期待通りの動作をするかどうか、手で操作して目で確認する。
  • プログラムの中にあるプロシージャや関数を利用して実行結果を確認する別のプログラムを作成して実行する。

Jasmine Teaでは、後者をサポートするために、テスト機能が備わっています。作成したプログラムの動作を自動的に確認する別のプログラム(これをテストプログラムと呼びます)を作ることができます。

テスト機能を使えるようにする

テスト機能を使えるようにするには、最初にStudio 画面のエディターにある歯車のアイコンを押します。

test-1

「エディターの設定」ダイアログが開きます。ここにある「テスト機能」を「無効」から「有効」に変更して、「反映する」ボタンを押してください。

test-2

これにより、「エディター」タブの隣に「テスト」タブが現れます。

test-3

「テスト」タブを押すと、テストプログラムを入力するためのエディターや、テストプログラムを実行するためのボタンが表示されます。

動作を確認したいプログラムを入力する

では、ここからテスト機能を使って、実際にプログラムの動作を確認するための手順について説明します。最初に、動作確認したいプログラムを入力します。

ここでは、2つの数を受け取って、足し算をした結果を戻り値として返す独自関数「add」を作ってみましょう。

「エディター」タブをクリックして、以下のプログラムを入力してください。

function add(a,b)
  return a-b
end function

test-4

実は上記のプログラムは、期待通りには動作しません(足し算ではなく引き算になっている)。ここでは修正せずに、引き算のままにしておきます。

テストプログラムを入力して実行する

先程の add 関数の期待する動作は、例えば「1 と 2 を引数として渡すと、戻り値として 3 が得られる」です。これを検証するテストプログラムを作成します。

「テスト」タブを押して、以下のプログラムを入力してください。

actual=add(1,2)
assert actual=3

test-5

1行目では、add 関数を呼び出して、引数として 1 と 2 を指定しています。そして、戻り値を変数 actual に代入しています。

2行目では、assert 命令を使っています。assert 命令は、パラメーターとして渡された式が成り立つかどうかを検証します。もし成り立たなかったときは、実行画面にエラーを表示して、プログラムの実行を終了します。「actual=3」という式を指定していますので、変数 actual に 3 が代入されていなければ、この式は成り立ちません。

では、テストプログラムを実行してみます。「テスト」タブの下にある「テスト実行」ボタンを押してください。

test-6

実行画面には「assertの検証に失敗しました」と「2行目で止まりました」というメッセージが表示されています。これは、2行目の assert 命令によって「actual=3」の式が検証された結果、その式が成り立たなかったことを示しています。

これにより、add 関数が期待した結果を返していないことがわかります。

デバッグする

add 関数がうまく動作していないことがわかりました。プログラムが期待通りに動作していないことを「バグ(Bug)がある」と言います。そして、そのバグを修正して期待通りに動作するようにプログラムを修正することを「デバッグ(Debug)する」と呼びます。

では、add 関数をデバッグしてみましょう。引き算になってしまっていましたので、足し算に変更します。「エディター」タブを押して、2行目にある「a-b」という式を「a+b」に変更してください。

test-7

再びテストプログラムを実行して、add 関数が期待通りに動作するようになったかどうか確かめてみましょう。「テスト」タブを押して、「テスト実行」ボタンを押してください。

test-8

assert 命令のパラメーターに指定した「actual=3」という式が成り立ち、エラーにならずにテストプログラムが最後まで実行されました。これにより、add 関数が期待通りに動作する(少なくとも 1 と 2 を渡したら 3 が得られる)ことが確認できました。

このように、テストプログラムを使うことで、プログラムが期待通りに動作するかどうかを検証することができるようになります。