Testing 播放:自动设置测试数据

Testing 播放:自动设置测试数据,testing,playframework,automation,sbt,Testing,Playframework,Automation,Sbt,我有一个playframework项目,已经达到beta/用户测试阶段。 对于此测试,我们需要测试数据存在于环境中 我正在寻找一种通过脚本实现自动化的方法。 最好的方法是通过调用API,根据项目中的模型传递正确形状的数据(因此取决于项目而非外部)。 我是否可以使用任何现有的SBT插件来创建适当的JSON并将其传递给API以设置环境为什么需要插件?我认为您想要做的是拥有一组Json,然后调用端点,看看后端的响应是什么。在基于Json的调用进行“设置”的情况下,您可以在测试中使用FakeReques

我有一个playframework项目,已经达到beta/用户测试阶段。 对于此测试,我们需要测试数据存在于环境中 我正在寻找一种通过脚本实现自动化的方法。 最好的方法是通过调用API,根据项目中的模型传递正确形状的数据(因此取决于项目而非外部)。
我是否可以使用任何现有的SBT插件来创建适当的JSON并将其传递给API以设置环境

为什么需要插件?我认为您想要做的是拥有一组Json,然后调用端点,看看后端的响应是什么。在基于Json的调用进行“设置”的情况下,您可以在测试中使用
FakeRequest

 val application = newGuiceApplicationBuilder().build()
 val response = route(application, FakeRequest(POST, "/end-point")).get 
 contentAsString(response) must include("where is Json")
在您的测试中,您还可以测试来自后端的响应以及您提供给它的Json:

  • 根据您在后端使用的case类,使用
    Writes
    创建一组Json。您还可以故意创建一个无效的Json,例如,它遗漏了一个字段;或具有无效的结构

  • 使用表驱动测试和发送
    FakeRequest
    ,主体/头包含Json;然后对照预期结果进行检查


  • 我正在移动,回家后,我可以在这里编写一个示例代码。

    我不想使用测试,因为它们是单独运行的,我所做的是创建第二个Main,然后使用Sbt runMain。但这在部署方面造成了混乱(它部署的是Main而不是play项目)