単体テスト 作成手順
単体テストの作成手順を学ぶために書き覚え
testを行うソフトウェアや方法にも異なるが、だいたいの流れをつかむ。
1.TestCaseのサブクラスを作成
フレームワークを使いやすくするために、継承する
2.テストパターンとしてtestXXメソッドを作成する
ユーザが行いたいテストパターンを特定の命名規則で作成していく。
ポイント!
・publicにする(必須)public以外ではメソッドを見つけ出せないため、エラーが発生する。
・test~でメソッド名を始める。JUnitがテストメソッドつぃて検知してくれるので、記述が減る。ある意味デファクトスタンダード。
・継承されたTestCaseは、さらにAssertクラスを継承しているのでassertXXX()メソッドがそのまま利用できる。
3suite()メソッドを作成
testメソッドをJUnitフレームワークから実行してもらうために、テストセットを指定する。
起動するときには、TestRunnerへテストセットであるTestuSuiteを渡したいときに必要。
public staticにすること。
suite()の作成は以下の3パターンがある。
a.何も書かない
suite()を書かないと、振る舞いとして対象クラスのpublic testXXX()が全て対象になる
b.全部明示する
例
Sample Testのクラスを引数として渡すと、SampleTestクラスのtestXXX()が全てが対象となる。
c.特定の物を指定する
SampleTestクラスのtestAAA1(),testAAA2()メソッドが対象となる。SampleTestクラスはTestCase(Interfaceの Test)を継承してある
ポイント!
・Testクラスを返却しTestRunnerのrun()に渡すのが目的
・suite()メソッド名はそれほど気にするほどでもないが、TestRunnerクラスへTestSuiteを直接渡さない場合、suite()メソッドがあるか検索する。
・suite()メソッドがあればそこからTestインスタンスを受け取り、suite()が無ければa.のように全メソッドが対象となる。
4.setUp()メソッドを作成
メソッド内に//各テスト開始ごとに共通に行われる処理を記載
5.tearDown()メソッドを作成
メソッド内に//各テスト終了ごとに共通に行われる処理を記載
//setup()で取得したインスタンスを解放
6.起動処理を作成
A.Testクラス自体で起動する場合
※起動のmain(String[ ]argv)を作成
B.そうでない場合
起動時(コマンドプロンプト)に指定する