Okay. So today we talked about the cost of end-to-end integrated tests. We saw that there's a high cost of maintenance, and that they scale poorly. We saw how contract testing can help with integration testing by combining the approaches of fast and isolated unit tests with contracts to prevent drift. We saw how PACT works and how we can gate releases using Can I Deploy?
So I hope that talk was useful. Really appreciate you coming on. And feel free to contact me on my details there, if you'd like to talk further. Thank you very much.
Hi Matt. Hello everyone. Thanks for having me. Is the poll result surprising to you, or did you expect this? No, that sounds about normal. Look, not everyone's suffering so bad they need to buy bulk coffee and buy themselves a coffee machine like, like I do at home. But, you know, most people find the integration testing, or at least end-to-end integration testing, challenging enough that they have to spend a bit of time on it and generally need something to get through that pain because, you know, the flaky tests, because it takes time to manage because chasing down the issues. You know, there's always an excuse to not want to look into those tests and write those tests and maintain those tests, so it's not entirely surprising, but it's also good to hear that not everyone is in so much pain that they need to, you know, have caffeine hooked into their veins just to better get through the day.
Yeah, but flaky tests are always a good excuse to get another cup of coffee.
There are a few questions. Manuel Zambrano asked, can we use PacFlow with different consumer and provider technologies? I mean, for example, a React frontend and a Python backend serving the API? That's a good question. It's probably the main reason people choose Pact over other alternative sort of contract testing frameworks, so it's worth giving a quick shout out to Spring Cloud Contract. So if you're using Java here, because this is a testing conference for JavaScript, but if you do use Java, Spring Cloud Contract is a decent choice, it's putting the folks out of Spring. They do have support for other languages, but the way it works is you still write groovy scripts, so I guess technically you're probably still writing JVM stuff. But one of the benefits of Pact is that it uses a specification that enables you to work across languages. So really early on in its design, the early maintainers recognized that this would be a challenge, that polyglot architectures were a thing, and that contract testing needed to support polyglot environments from the beginning. So there's actually a specification that governs the way matching happens in a language-independent way. That means that different consumers can be written for different providers and sort of in this environment, but the way the matching happens and the verification happens, so transcends languages. So yes, it's entirely possible to have a JavaScript front-end, an iOS front-end, a Swift front-end, talking to a Java API back-end or Ruby back-end or a .NET back-end. You can mix and match languages kind of as you please.
Amazing. Steve, I'm probably pronouncing that wrong. I'm sorry.
Comments