본문 바로가기

스터디

wiremock. stateful-behaviour

외부 api를 호출할때 응답값이 변경되는 경우가 있는데

wiremock에서도 동일하게 동작하게 구현할 수 있다.

 

예시)

첫번째 요청

  • 요청: /exam/state 
  • 응답: { state: "NONE" }

 

이후에 상태값이 변경되어 

 

두번째 요청

  • 요청: /exam/state
  • 응답: { state: "COMPLETE" }

 

 

첫번째 요청(시작상태)은 항상 "requiredScenarioState": "Started" 로 설정되어있어야 한다.

-> 이부분에서 아무리 세팅을해도 호출이 안되어 서칭을 해보니 첫번째 상태에도 "newScenarioState"을 설정하라는 이야기가 있어서 설정해보니 잘 나온다. (https://stackoverflow.com/questions/49474957/how-change-state-in-get-method-with-wiremock)

 

mappings폴더아래 json파일 생성.

 

step1.json

{
  "scenarioName": "Step",
  "requiredScenarioState": "Started",
  "newScenarioState": "StepOne",
  "request": {
    "url": "/exam/state",
    "method": "GET",
  "response": {
    "status": 200,
    "headers": {
      "Content-Type": "application/json"
    },
    "jsonBody": {
      "state": "NONE"
    }
  }
}

step2.json

{
  "scenarioName": "Step",
  "requiredScenarioState": "Started",
  "newScenarioState": "StepOne",
  "request": {
    "url": "/exam/state",
    "method": "GET",
  "response": {
    "status": 200,
    "headers": {
      "Content-Type": "application/json"
    },
    "jsonBody": {
      "state": "NONE"
    }
  }
}

 

 

TODO :: 샘플코드 github 올리기

 

 

#참고: http://wiremock.org/docs/stateful-behaviour/