我正在使用spray编写一个简单的REST API,作为其中的一部分,我希望能够使用模拟数据设置数据库,然后使用该测试数据库启动REST服务器
问题在于我真的不知道如何启动测试实例以启动并运行以执行测试。请指导。
答案 0 :(得分:2)
从sbt的角度来看,测试和生产代码之间的区别主要在于代码的位置。它由the configuration scope facility in sbt驱动:
配置定义了构建的风格,可能有自己的类路径,源,生成的包等。配置概念来自Ivy,sbt用于托管依赖项库依赖项,以及来自MavenScopes。
您在Compile
范围内可以做的事情应该很容易适用于Test
,反之亦然。它可能听起来也可能不那么容易,但沿途不应该有那么多箍。
As I pointed out in a comment,当你执行sbt run
时,就好像你sbt compile:run
......好吧,差不多,但你可以假设,它确实如此。配置数据库和服务器的测试实例,并使用sbt test:run
或更好的方式执行它们 - 编写一个测试,可能是集成测试,它将在运行过程中完成所需的所有操作并为其运行使用sbt it:test
- 请参阅Integration Tests。
答案 1 :(得分:1)
您可以将对象添加到/ src / test。除了使用模拟数据库之外,此对象将像正常情况一样引导服务器。
如果您未将此对象标识为测试类,则它不会干扰您的测试套件。这取决于您使用的测试系统。
例如,在Spec2中,它将自动运行任何扩展规范的测试类。如果不扩展此类,则不会运行它。
包装层面的额外隔离可能是明智的。