LoginSignup
0
0

More than 1 year has passed since last update.

GaugeとWiremockを使ったテストをするとwiremock expected exactly 1 requests matching the following pattern but received とエラーが出る

Posted at

はじめに

Wiremockを使ってテストを作成したところ実行する回数によってエラーが出てしまう挙動があったのでまとめます
割とハマってしまう人が多い気もしました

問題

以下のテストを実行しました

example.spec
## ユーザーを取得できる
* URL"/user/1"にGETリクエストを送る

## ユーザーを取得できる
* API"mockApi"のURL"/user/1"にGETリクエストされた

このテストをWiremockのサーバーを立てて行うと1回目は成功するのですが、2回目以降から以下のエラーがでます

wiremock expected exactly 1 requests matching the following pattern but received 2

received Xは実行するごとに数字が増えていきました

解決方法

これはWiremockが受けたレスポンスを内部でカウントしてしまうことによるエラーでした

テストの実行前(各Stepごと)にWiremockを初期化する必要があります

ですので以下のファイルを作成しました

Setup.kt
import com.thoughtworks.gauge.Step
import com.github.tomakehurst.wiremock.client.WireMock
import com.thoughtworks.gauge.BeforeSpec

class Setup {
    @BeforeSpec
    fun prepareWireMock() {
        WireMock.reset()
    }
}

@BeforeSpecで初期化を行うようにしたところテストが通りました

おわりに

チームの方に聞いたところ速攻で解決しました
ネットで調べていてまったくわからなかったので、適宜聞くことは必要だなと思いました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0