[英]Spring mock testing in Pact
我正在尝试采用契约。 我理解方程式的消费者方面,它看起来非常好。 但我对生产者方面感到困惑。
文档似乎主张运行提供程序应用程序,并针对正在运行的服务器验证合同。
我不喜欢这样做。 首先,我需要为每个协议提供适当信息的数据库,至少可以说是痛苦的。 第二,启动应用程序将是一件麻烦事 - 我提到它是一块巨石吗? - 最后,有一些POSTS会改变数据库的状态,并使测试运行变得脆弱。
我想做的是使用契约进行mockMvc样式测试。 我想模拟我的服务,只测试端点,我想在这种情况下应该测试什么。
如何通过Pact实现这一目标?
好吧,如果你没有测试你的提供商的合同丢失了合同测试的全部要点,因为你的合同没有针对双方进行测试。 因为要点是消费者决定提供商应该如何表现,在您的情况下,您希望使用mockMvc绕过提供商,并且没有必要仅针对您的消费者而不是提供商进行合同测试。 即使您的Provider是一个整体,但运行它并使用合同进行测试仍然更好,然后运行所有微服务进行端到端测试。
是的,你可以通过PACT实现它,但是我对Cotnic有同样的看法,它在提供者方面胜过PACT的目的。 PACT的主要目的是验证您的服务器作为提供者是否按照协议 (PACT)工作。 因此,在我看来,使用PACT作为合同的正确方法是通过对完全部署的服务器运行它,并使用@State来“准备”服务器(db,启动应用程序等)
无论如何,如果你使用的是Spring,你可能会看看这个样本,以便将Mact与MockMvc一起使用
https://github.com/DiUS/pact-jvm/tree/master/pact-jvm-provider-spring
Pact-JVM现在支持Spring mockmvc测试来验证Spring或Springboot提供程序。 请参阅https://github.com/DiUS/pact-jvm/tree/master/pact-jvm-provider-spring
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.