Sobes.tech
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