Skip to content

Instantly share code, notes, and snippets.

@tetkuz
Created September 30, 2016 19:24
Show Gist options
  • Save tetkuz/bfb47b54922789ac6e00871e7c94ffa0 to your computer and use it in GitHub Desktop.
Save tetkuz/bfb47b54922789ac6e00871e7c94ffa0 to your computer and use it in GitHub Desktop.

Mini Bash Tester Sample

mini-bash-tester/test_utils.sh の使用例です。

File List

sample
|-- README.md      ... 本ファイル
|-- testee.sh      ... テスト対象プログラム
|-- tester_01.sh   ... 最小のテストプログラム例
|-- tester_02.sh   ... _equals_num _equals_str のベーシックな使用例
|-- tester_03.sh   ... TEST_CASE_NAME の使用例
`-- tester_04.sh   ... count_tests の使用例

testee.sh

testee.sh は名の通り、テストされる側 のプログラムです。

Mini Bash Tester は、testee.sh のような Bash スクリプトをテストすることができます。 testee.sh は関数定義のみされているべきです。

tester_XX.sh

tester_XX.sh は名の通り、テストする側 のプログラムです。

Mini Bash Tester は、test_utils.shsource などで読み込むだけで使用することができます。 現在の Mini Bash Tester で使用可能な関数は以下の通りです。

  • fail_unless_equals_num
  • fail_unless_equals_str

Tutorial

Mini bash tester のチュートリアルです。 test_utils.sh の使い方や、機能を解説します。

テストプログラムを実行する

sample/ ディレクトリに移動し、tester_01.sh を実行します。 下記のように 1 tests passed とリザルトが表示されます。

$ cd mini-bash-tester/sample/
$ ./tester_01.sh
>
> Test result: 1 tests passed.
>

tester_01.sh には、1行コメントアウトされています。 このコメントを外して再度実行しましょう。

$ cat tester_01.sh
#!/bin/bash

source ../test_utils.sh

fail_unless_equals_num 0 0
fail_unless_equals_str "str_a" "str_b"
$ ./tester_01.sh
Test failed: line=5: want=str_b but target=str_a
>
> Test result: 0 tests passed.
>

コメントを外して実行すると次は 0 tests passed になってしまい、 Test failed: line=5: want=str_b but target=str_a が表示されたことがわかります。

このように Mini bash tester は 1つのテストが失敗するとすぐにテストプログラムを終了する仕様です。

tester_01.sh をさらに変更しテストを実行しましょう。すべてのテストが通るはずです。

  • 変更前
fail_unless_equals_str "str_a" "str_b"
  • 変更後
fail_unless_equals_str "str_a" "str_a"

単体テストを行う

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment