关于测试提供程序,我有几个问题:
是否需要启动提供程序服务才能进行测试?我应该在测试中到达实际的提供者endpoint吗?
是的,您启动了您的提供者,并使用了实际的endpoint(请参阅下面的警告)
当我运行测试时,是否需要在本地启动服务,点击/dogsendpoint,然后用pact文件验证为该endpoint返回的响应?
+
或00
尽管有很多案例,Pact只有一个成功案例和一个失败案例是合适的:
// end point for "add phone number"
request = unmarshalResponse(data)
success = recordPhoneNumber(request)
response = marshallResponse(success)
send(response)
因为我们只对合同感兴趣,所以在recordPhoneNumber()
中省略业务逻辑是合适的,这意味着,pact将测试您的网络层和封送器。
根据您的代码设计,放置存根的最佳位置将会改变。在我们的示例中,存根可能如下所示:
// stub for recordPhoneNumber()
if (request.phoneNumber === "+12 345 1234 123") {
return new Valid()
} else if (request.phoneNumber === "123") {
return new Invalid("Number too short")
}
理想情况下,契约测试不需要endpoint以外的任何基础设施(数据库、缓存等)。所以,理想情况下,你可以把存根放在一个地方,你不需要启动那些东西。
Pact并不适合集成测试工具(尽管可以这样使用它,但如果这样做,您会遇到其他问题)。
server.post('/setup', (req, res) => {
const state = req.body.state
animalRepository.clear()
switch (state) {
case 'Has no animals':
// do nothing
break
default:
importData()
}
}
我想为我的客户和API建立契约测试。我的API不能在本地运行,所以我希望能够在部署到生产之前,针对已部署的API临时版本运行提供程序测试。 我在网上看到的提供程序测试的大多数示例都使用了localhost。当尝试对我部署的HTTPSendpoint运行提供程序测试时,测试失败,显示。是不支持HTTPS协议,还是我遗漏了什么? 使用pact-provider-verifier cmd line工具工
测试运行的结果如下: 由于使用本地协议文件会使测试变为绿色,我想原因不在我的测试类代码中,不过如果有帮助的话,我在这里提供它: 由于使用本地协议文件不是一个选项,我真的想知道如何修复错误,并将感谢任何有帮助的意见。
我是angular和jhipster的新手,我已经编辑了登录组件,添加了formbuilder和MatDialogRef,并更新了单元测试:
我已经在文件中添加了所有相关build.gradle依赖项。尽管如此,当我尝试运行调用SOAP服务时,还是会出现以下错误。共享依赖项部分和错误详细信息。使用Java11。网上已经有很多答案,但似乎都不起作用。任何帮助/建议将是值得赞赏的。 低于错误跟踪
我正在使用pact-jvm提供程序Spring。我有两个不同的pact(.json)文件,比如(order.json和irs.json),我需要按顺序运行它们(order后面是irs),但是根据字母顺序选择测试类,irs首先运行,order其次运行。是否有方法调用、执行特定的测试类提供程序状态或定义测试类执行顺序?
问题内容: 我目前正在做我的第一个Java项目,并且希望完全TDD。我正在使用JUnit编写测试。显然,JUnit不提供对数据提供程序的支持,这使得使用20个不同版本的参数测试同一方法变得很烦人。支持数据提供者的Java最受欢迎/最标准的测试工具是什么?我遇到过TestNG,但不知道它有多受欢迎,或与替代品相比如何。 如果有一种方法可以使这种行为成为使用JUnit的好方法,那么这也可能会起作用。