Middle
Müqavilə testləri üçün digər alətlər hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
- Pact: Müştəri-Əsaslı Kontraktlar (CDC) testləri üçün məşhur alətdir. Bir çox dil və platformanı dəstəkləyir.
- Spring Cloud Contract: Spring ekosistemində kontraktların test edilməsi üçün alətdir. CDC və istehsalçı tərəf kontrakt testləri üçün istifadə oluna bilər.
- Swagger/OpenAPI: API-ni təsvir edən spesifikasiya. Müştəri stublarının yaradılması və cavabların doğrulanması üçün istifadə edilə bilər.
- JSON Schema: JSON sənədlərinin strukturunu təsvir edən dil. Kontraktların doğrulanmasında istifadə olunur.
- Protobuf (Protocol Buffers): Servislər arasında kontraktların müəyyənləşdirilməsi üçün istifadə edilən serializasiya formatıdır.
- gRPC: Protobuf istifadə edən RPC çərçivəsidir və xidmət kontraktlarının müəyyənləşdirilməsi üçün istifadə olunur.
Pact və Spring Cloud Contract-un müqayisəsi:
| Xüsusiyyət | Pact | Spring Cloud Contract |
|---|---|---|
| Yanaşma | CDC (Consumer-Driven Contracts) | CDC və istehsalçı tərəf kontrakt testləri |
| Ekosistem | Dildə və çərçivədən müstəqil | Spring ekosisteminə yönəlib |
| Stub/mock yaradılması | Bəli (Müştəri tərəfində) | Bəli (İstehsalçı tərəfində) |
| Kontrakt brokeri | Pact Broker | Git, Maven Central və digərleri |
| Protokol dəstəyi | HTTP, mesajlar | HTTP, mesajlar |
Pact (DSL) istifadə nümunəsi:
// Ruby-də Pact istifadə edərək müştəri tərəfi kontraktın tərifi
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
before do
provider_service_mock.upon_receiving "məlumat üçün sorğu" do
with(method: :get, path: "/data")
end.will_respond_with(
status: 200,
headers: { "Content-Type" => "application/json" },
body: { message: like("Salam,") } // Matcher istifadə edilərək
)
end
it "provider-dan məlumat almalıdır" do
# Sizin müştəri kodunuz sorğu göndərir
# ...
expect(@response.status).to eq(200)
expect(@response.body).to include("Salam,")
end
end