Saya menulis kontrak musim semi untuk API sederhana yang menerima nomor akun dan mengembalikan respons "baik" jika akun ini ada di database atau respons "buruk" sebaliknya. Bagaimana cara menentukan respons "buruk" dalam kontrak jika permintaan yang menyebabkan respons "buruk" memiliki format yang sama dengan permintaan "baik"?

Kelas Java saya:

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

public class FindAccountRequest {
    String accountNumber;
}

public class AccountDto {
  Integer balance;
  Integer errorCode;
}

Kontrak:

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()] )
    }
}

Permintaan:

{
    accountNumber: "12345678901234567890"
}
0
omnichord 28 Mei 2020, 13:08

1 menjawab

Jawaban Terbaik

Siapkan dua nomor rekening yang berbeda satu untuk kasus positif dan satu untuk kasus negatif. Dua kontrak berbeda

0
Marcin Grzejszczak 28 Mei 2020, 15:49