pact-foundation / pact-jvm

JVM version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project.
https://docs.pact.io
Apache License 2.0
1.08k stars 479 forks source link

Banish consumer server side effects #27

Closed kenbot closed 8 years ago

kenbot commented 10 years ago

Further to the detailed analysis in #19 , the actual side-effecting Unfiltered/Finawhatever server stuff should just be some pixie-dust we sprinkle on at the end of the universe; the rest of the mechanism should run in its entirety with a pure thing that can produce a Stream[Interaction]. Currently there is too much coupling with chatty server code.

This is important, because we have observed non-determinism in various pact-jvm framework tests running on CI servers at REA. Regardless of whether that has arisen from REA-specific cosmic rays, the framework's behaviour would be much, much easier to reason about and debug with the additional purity.

thetrav commented 10 years ago

This is the contribution I am most interested in seeing.