箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

単体テスト、統合テストの違い

f:id:y_hakoiri:20191102121704j:plain

テストとは

アプリケーションを開発環境から本番環境に移す前に、

それまで書いたコードが正常に動作するかどうかを確認する作業のこと。

 

ユーザー登録、投稿機能が備わっているアプリケーションとかって

自分で登録してみて動作確認をする、っていう事しかしてこなかった。

というか、それで良いんだと思っていた。笑

 

当然、現場ではそういう「なんとなく」の確認は許されなくて

きちんと履歴(コード)として残さなきゃいけないし、そういう体制・環境を使わなければいけないですよね。。

 

単体テストと統合テスト

テストには単体テストと統合テストの違いについて、Webio辞書では以下のように書かれています

単体テストでは、個々機能を果たすためのプログラム部品(プログラムモジュール)がそれぞれしっかりと動作しているかを検証する。

〜〜中略〜〜

単体テストが行われ、問題ないことが確認されたら、それらのモジュールどうしを組み合わせ場合もうまく機能するかどうか検証する「結合テスト」の段階に引き渡される。

なんとなく、単体テスト→統合テストという流れなのはよくわかる。

 

もう少し噛み砕いて考えると、単体テストはRailsでいうとモデルクラスやコントローラーごとの動作確認を担当し、統合テストはアプリケーション機能の処理の一連の流れをテストする模様。

 

私のイメージとして

「”モデルクラス””コントローラー”など書く側から見た一つの塊ごとに動作確認するのが単体テスト、”ユーザーの新規登録”など使う側から見た一つの塊ごとに行うのが統合テスト

という感じにまとまりました。

 

実際にテストを行うに当たって、ここの明確な定義ってさほど重要ではないかもしれない&考え方が浅いかもしれませんが、とりあえず自分の言葉で噛み砕いてみたというお話でした。。