10

org.scalatest を使用したいくつかのテストを含む scala アプリケーションがあります。これらのテストでは、テスト データベースを管理するために、いくつかのグローバル セットアップ (およびティアダウン) が必要です。

私のテストがデータベースにヒットするべきではなく、Java-DAO-Stub-WTF-Overkill-Way™ を実行する必要があるとは言わないでください :-)。

テストの前後にコードを実行する方法を提供する SBT を使用してテストを実行しています。

    testOptions in Test += Tests.Setup( () => println("Setup") )

    testOptions in Test += Tests.Cleanup( () => println("Cleanup") )

残念ながら、問題のクラスにアクセスできません。当然のことながら、それらを build.sbt にインポートしても機能しません。

何か案は?

4

1 に答える 1

4

必要に応じて、 BeforeAndAfterAllまたはBeforeAndAfterトレイトを使用できます。

前と後:

スイートの実行前後に呼び出されるメソッドを必要とするスイートに混合できる特性。この特性により、すべてのテストおよびスイートのネストされたスイートが実行される前および/または後にコードを実行できます。

したがって、この例では、この特性を拡張する他のすべてのスイート/テストを含む MasterSuite を定義します。

前後:

各テストの実行前後にコードを実行する必要があるスイートに混合できる特性。このトレイトは、インスタンス変数に保持されている変更可能なフィクスチャ オブジェクトが各テストまたはスイートの前に置換または再初期化されるテスト スタイルを容易にします。

于 2011-12-14T10:59:04.030 に答える