Skip to content

Latest commit

 

History

History
43 lines (29 loc) · 2.17 KB

外部システムモック実装ガイド.md

File metadata and controls

43 lines (29 loc) · 2.17 KB

外部システムモック実装ガイド

外部システムをモック化し、テストする方法を示します。

テストの実装方法は ExternalServiceMockSpec を参照してください。

新しく外部システムのモックを定義する

外部システムのモックは Gateway や結合テストのシナリオなど複数のサブプロジェクトから参照できるよう、external-test-kit プロジェクトに定義します。

モックとしての振る舞いを管理するモッククラスと、テストコードからモックを利用しやすくするモックサポートクラスを実装します。

モッククラス

lerna.testkit.wiremock.ExternalServiceMock を継承したモッククラスを定義します。 どの外部システム用のモックなのか識別しやすい名前を付けてください。

class MyMock extends ExternalServiceMock

モックサポートクラス

テストコードからモックを参照しやすくし、テスト完了後にモックを停止させるためにモックサポートクラスを定義しておきます。

trait MyMockSupport extends BeforeAndAfterEach {
  this: TestSuite with DISessionSupport =>

  // このトレイトをミックスインしたテストコードから参照できるように定義
  protected lazy val myMock: MyMock = diSession.build[MyMock]

  override def afterEach(): Unit = {
    // テスト完了後にモックを停止させる
    myMock.server.resetAll()
    super.afterEach()
  }
}