Отрицательные (зависящие от базы данных) тестовые примеры в Spring Cloud Contract - PullRequest
0 голосов
/ 28 мая 2020

Я пишу весенний контракт для простого API, который получает номер учетной записи и возвращает «хороший» ответ, если эта учетная запись существует в базе данных, или «плохой» ответ в противном случае. Как указать в контракте «плохой» ответ, если запрос, вызывающий «плохие» ответы, имеет тот же формат, что и «хороший» запрос?

Мои Java классы:

@PostMapping("/postrequest")
public AccountDto postMethod(@RequestBody FindAccountRequest rq){
  return service.findAccountByNumber(rq);
}

public class FindAccountRequest {
    String accountNumber;
}

public class AccountDto {
  Integer balance;
  Integer errorCode;
}

Контракты:

Contract.make {
    request {
        description("Existing account — good response")
        method POST()
        url '/postrequest'
        headers { contentType(applicationJson()) }
        body( [ accountNumber: $( regex('[0-9]{20}') ) ] )
    }
    response {
        status 200
        headers { contentType(applicationJson()) }
        body( [balance: anyInteger()] )
    }
}

Contract.make {
    request {
        description("Nonexistent account — bad response")
        method POST()
        url '/postrequest'
        headers { contentType(applicationJson()) }
        body( [ accountNumber: $( regex('[0-9]{20}') ) ])
    }
    response {
        status 200
        headers { contentType(applicationJson()) }
        body( [errorCode: anyInteger()] )
    }
}

Запрос:

{
    accountNumber: "12345678901234567890"
}

1 Ответ

0 голосов
/ 28 мая 2020

Подготовьте два разных номера счетов: один для положительного случая, а другой - для отрицательного. Два разных контракта

...