我刚刚开始对我的系统采用Pact测试,它由一个提供者服务和一个作为消费者的棱角前端组成。我成功地设置了双方,因此,Angular应用程序生成了一个(单个)pact文件,与我的提供者服务的多个endpoint进行了许多交互。在提供程序中,我现在确实面临这样一个问题,即我的验证测试变得非常庞大和过于复杂,因为我必须在一个测试中用所有endpoint的数据模拟所有endpoint,例如:
@Provider("example-backend")
@PactFolder("pacts")
@SpringBootTest(...)
class ComprehensivePactTest {
[...]
@State("healthy")
fun `healthy state`() {
whenever(exampleService.dosomething(any())).thenReturn(exampleResponse)
whenever(otherService.somethingElse()).thenReturn(otherResponse)
}
}
有没有一种方法可以将交互从协议文件中分离出来,这样我就可以在我的提供者中进行多个小型验证测试?例如,我希望对路径以“/example”开头的所有请求进行验证测试,并对路径以“/other”开头的请求进行第二次测试。
所以我更希望有更小的、更集中的验证测试,像这样:
@Provider("example-backend")
@PactFolder("pacts")
@SpringBootTest(...)
class ExampleEndpointPactTest {
[... include some filter logic here ...]
@State("healthy")
fun `healthy state`() {
whenever(exampleService.dosomething(any())).thenReturn(exampleResponse)
}
}
@Provider("example-backend")
@PactFolder("pacts")
@SpringBootTest(...)
class OtherEndpointPactTest {
[... include some filter logic here ...]
@State("healthy")
fun `healthy state`() {
whenever(otherService.somethingElse()).thenReturn(otherResponse)
}
}
还是我的思维有谬误?多谢了。
JUnit4自述文件有一节是关于这个主题的。我认为它也适用于Junit5 https://github.com/dius/pact-jvm/tree/master/provider/pact-jvm-provider-junit#using-multiple-classes-for-the-state-change-methods
为状态更改方法使用多个类
如果您有大量的状态更改方法,您可以通过将它们移到其他类来将其拆分。有两种方法可以实现这一点:使用接口
可以使用withStateHandler或setStateHandlers方法向测试目标提供其他类。有关示例,请参见BooksPactProviderTest。
我已经从github下载了SpringSecurity OAuth2测试代码,并通过运行主应用程序类启动了vanilla服务器。 来自Spring文档: 框架提供的URL路径是/oauth/authorize(授权endpoint)、/oauth/token(令牌endpoint) 我想用postman测试这两个endpoint,模拟客户端凭据授予流。但是,如果我尝试使用基本Auth访问这些end
我是新来的。我的项目是Java项目。我通读了pact文档,找到了github项目https://github.com/dius/pact-jvm/tree/master/pact-jvm-consumer-junit,我将其导入到eclipse IDE中。我被困在这里了。1.首先运行哪个测试。ExampleJavaConsumerPactRuleTest还是ExampleJavaConsumerP
当问这个问题时,我在寻找我自己的AuthenticationProvider实现的指导。我的意思是: 到目前为止,我了解到Spring Security询问AuthenticationProvider对象用户是否被认证。目前我正在使用DaoAuthenticationProvider来处理我自己的客户UserDetailService返回的用户名和密码。一切都很好!Spring支持许多不同的认证提
通过参考Pact Repo中给出的示例,我为MessageProvider编写了示例Pact测试。下面是使用者测试,它正在为预期来自提供者的消息生成PACT json文件。 公共类Inbound_Receiving_OpenMessageTest{private byte[]receivingopenloaddetailsmessage; }
验证阶段也称为乐观并发控制技术。 在基于验证的协议中,事务在以下三个阶段中执行: 读阶段 :在此阶段,读取并执行事务T。它用于读取各种数据项的值并将它们存储在临时局部变量中。 它可以对临时变量执行所有写操作,而无需更新实际数据库。 验证阶段 :在此阶段,将根据实际数据验证临时变量值,以查看它是否违反了可串行性。 写入阶段 :如果验证了事务的验证,则将临时结果写入数据库或系统,否则将回滚事务。 这里
斯波克规格 如何测试从“Specification下的方法(teamservices.deleteteam())”调用的“Specification下的类”teamservices.moveAssets())方法? https://github.com/spockframework/spock/discussions/1346