Middle
Millised teised tööriistad on olemas lepingutestideks?
sobes.tech AI
Vastus AI-lt
- Pact: Populaarne tööriist lepingute testimiseks Consumer-Driven Contracts (CDC). Toetab paljusid keeli ja platvorme.
- Spring Cloud Contract: Tööriist lepingute testimiseks Spring ökosüsteemis. Võib kasutada CDC ja Producer-poolsete lepingute testimiseks.
- Swagger/OpenAPI: API kirjeldusspetsifikatsioon. Võib kasutada klientide stub'ide genereerimiseks ja vastuste valideerimiseks.
- JSON Schema: Keel JSON dokumentide struktuuri kirjeldamiseks. Kasutatakse lepingute valideerimiseks.
- Protobuf (Protocol Buffers): Serialiseerimisvorming, mida saab kasutada teenuste vahel lepingute määratlemiseks.
- gRPC: RPC raamistik, mis kasutab Protobuf'it teenuste lepingute määratlemiseks.
Võrdlus Pact ja Spring Cloud Contract vahel:
| Omadus | Pact | Spring Cloud Contract |
|---|---|---|
| Lähenemine | CDC (Consumer-Driven Contracts) | CDC ja Producer-poolsete lepingute testimine |
| Ökosüsteem | sõltumatu keelest ja raamistikust | suunatud Spring ökosüsteemile |
| Stub'ide/mokide genereerimine | Jah (tarbija poolel) | Jah (tootja poolel) |
| Lepingute vahendaja | Pact Broker | Git, Maven Central ja teised |
| Protokollide tugi | HTTP, sõnumid | HTTP, sõnumid |
Näide Pact kasutamisest (DSL):
// Tarbija poole leping Ruby keeles Pact'iga
Pact.service_consumer "Consumer Service" do
has_pact_with "Provider Service" do
mock_service "provider_service_mock" do
port 1234
end
end
end
describe "GET /data" do
eelnevalt do
provider_service_mock.upon_receiving "päring andmete saamiseks" do
with(method: :get, path: "/data")
end.will_respond_with(
status: 200,
headers: { "Content-Type" => "application/json" },
body: { message: like("Hello,") } // Vastuse sobitamine
)
end
it "peab saama andmed tootjalt" do
# Teie tarbija kood, mis saadab päringu
# ...
expect(@response.status).to eq(200)
expect(@response.body).to include("Hello,")
end
end