Forum Discussion

scott_myob's avatar
scott_myob
Frequent Visitor
5 years ago

How to validate requests sent to a mock server against a contract

When I test a service, I often mock interactions with other services so that I am only testing the code that I care about. If the interaction I am mocking has an OpenAPI contract, I want to be able to validate that the request and response being mocked both comply with the contract.

 

This seems like it should be a very common use of Swagger / OpenAPI contracts, but the only tool I can find that does this is this one written by Atlassian in Java https://bitbucket.org/atlassian/swagger-request-validator. I don't want to use Java, and if there is a lack of tools in this area that indicates that what I am trying to do is wrong for some reason.

 

Are there any other tools that do this? I have looked everywhere and haven't found any. Or does everyone who wants to do "contract testing" instead use PACT? Or am I just crazy for trying to use this approach?

 

 

Example:

  • Let's pretend that I have a system that sends emails to a database of users
  • The system is comprised of two microservices, Notifications and Users
  • Notifications consumes Users
  • I have an OpenAPI contract for Users
  • When I test Notifications, I would mock the interation with Users.
  • To ensure the integration is correct, I want to be able to validate that the request I am sending to Users and the fake response I am mocking, actually matches the Users contract.
  • The only options I can find to do this currently is PACT, or use the Java swagger-request-validator
No RepliesBe the first to reply