■ はじめに
Scala の 単体試験をする可能性が出てきたので テスティングフレームワーク について、 徐々に書き溜めていく
目次
【1】Scala の テスティングフレームワーク 1)ScalaTest 2)specs2 3)ScalaCheck 4)TestNG 5)Setak / Setac 【2】Scala の モックツール 1)ScalaMock 2)EasyMock 3)JMock 4)Mockito 【3】Scala の カバレッジツール
【1】Scala の テストフレームワーク
1)ScalaTest 2)specs2 3)ScalaCheck 4)TestNG 5)Setak / Setac など
1)ScalaTest
* トレイトを使い分けることで、様々なスタイル(xUnit/BDDなど)で テストケースを記述できるフレームワーク * specs2と比較すると、シンプルで扱いやすい => 詳細は、以下の関連記事を参照のこと
ScalaTest ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/27/001306
2)specs2
* BDD(Behavior-Driven Development; 振舞駆動開発)スタイル のテスティングフレームワーク * ScalaTest より高機能(例えば、HTMLリポートなど) => 詳細は、以下の関連記事を参照のこと
specs2 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/06/08/122708
specs2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2024/06/09/221005
3)ScalaCheck
* テストデータのパターンを自動生成してくれるテスティングフレームワーク * 単体でも使用可能だが、ScalaTest や specs2 と組み合わせて使える
ScalaTest ~ with ScalaCheck ~
https://dk521123.hatenablog.com/entry/2023/03/29/000014
4)TestNG
* TestNG = Testing, the Next Generation * Scala ってより、Javaのテスティングフレームワーク * 以下のような5つの特徴がある [1] テストにおける各種設定をXMLに記述できる [2] アノテーションベースである [3] 前後処理のタイミングを細かく設定できる [4] テストをグループ化することができる [5] テスト間に依存関係を作れる
https://atmarkit.itmedia.co.jp/ait/articles/0809/11/news151.html
5)Setak / Setac
Setak
* Akka の アクターを使ったプログラムのためのテスティングフレームワーク
Setac
* Scala 標準のアクター向けのテスティングフレームワーク
【2】Scala の モックツール
はじめ、ScalaTestでのMockは、Mockito の1択だろって 思っていたのだが、デフォルトで「import org.scalatest.mock.MockitoSugar」 がなくなっていたしで、改めてちゃんと調べてみたら、 公式ドキュメントに以下の記述あり。
https://www.scalatest.org/user_guide/testing_with_mock_objects
より抜粋 ~~~~~~~~~~~~ ScalaMock EasyMock JMock Mockito ~~~~~~~~~~~~
1)ScalaMock
* PureのScala製のMock => 詳細は、以下の関連記事を参照のこと
ScalaTest ~ ScalaMock ~
https://dk521123.hatenablog.com/entry/2024/06/12/215306
2)EasyMock
* Java製のMock => 以下の関連記事を参照のこと
EasyMock ~入門編~
https://dk521123.hatenablog.com/entry/2010/01/28/234207
* 導入したい場合は、以下の公式ドキュメント参照
https://www.scalatest.org/plus/easymock
3)JMock
* こちらもJava製のMock
* 導入したい場合は、以下の公式ドキュメント参照
https://www.scalatest.org/plus/jmock
4)Mockito
* Scala ってより、Javaのモックツール => 詳細は、以下の関連記事を参照のこと
ScalaTest ~ with Mockito ~
https://dk521123.hatenablog.com/entry/2023/03/31/002830
Mockito ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2014/07/18/233904
Mockito ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2014/07/19/121409
【3】Scala の カバレッジツール
* 以下の関連記事を参照のこと
ScalaTest ~ with Coverage ~
https://dk521123.hatenablog.com/entry/2023/08/07/222945
関連記事
ScalaTest ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/27/001306
ScalaTest ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/03/28/003906
ScalaTest ~ with ScalaCheck ~
https://dk521123.hatenablog.com/entry/2023/03/29/000014
ScalaTest ~ with Mockito ~
https://dk521123.hatenablog.com/entry/2023/03/31/002830
ScalaTest ~ with Coverage ~
https://dk521123.hatenablog.com/entry/2023/08/07/222945
specs2 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/06/08/122708
specs2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2024/06/09/221005
ScalaTest ~ ScalaMock ~
https://dk521123.hatenablog.com/entry/2024/06/12/215306
Mockito ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2014/07/18/233904
Mockito ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2014/07/19/121409
EasyMock ~入門編~
https://dk521123.hatenablog.com/entry/2010/01/28/234207
Scala ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/03/10/193805
Scala ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/12/184331