如何使用两个不同的依赖注入容器 运行 scalatest 规范?
How to run scalatest specs with two different dependency injection containers?
我有一个包含最大规模规范文件的测试套件。它们都 运行 在我的 DIC 上的内存实现上很好,这是蛋糕模式的实现。
现在我想要 运行 与集成测试相同的测试套件,这意味着内存中的实现将被与数据库对话的集合所取代,github API'与等通信的s
- 我是否应该创建不同的 sbt 环境并将我的 di 容器放在两个独立的环境(功能和集成)中,其中一个根据环境加载?这样做的最佳方法是什么?
我能否以某种方式在混合了容器的功能和集成测试套件中收集测试?像这样的东西会如何工作?在哪里定义?
val functionalTestSuite = new TestSuite with FunctionalTestEnvironment
val integrationTestSuite = new TestSuite with IntegrationTestEnvironment
我想重新使用我的测试来防止代码重复,但我很难在 Scala 中解决这个问题,因为我对这种语言还很陌生。
我最终制作了单独的测试套件。稍后我可以将 sbt 配置为仅 运行 这些文件,而不是让它自动搜索文件。
这样做的缺点是每次都需要大量的样板文件来将测试添加到套件中。我希望有人会编辑我的答案以删除样板文件。
class FunctionalTestingSuite extends Suites {
override val nestedSuites : IndexedSeq[Suite] = {
//val actorSystem = FunctionalSpec.createActorSystem
IndexedSeq(
new CodeRepositorySpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper,
new PipelineCollectionSpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper,
new PipelineControllerSpec with FunctionalTestEnvironmentHelper,
new PipelineSpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper,
new JobCollectionSpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper,
new JobControllerSpec with FunctionalTestEnvironmentHelper,
new JobSpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper
)
}
}
依赖注入容器每次都是通过混合一个特征来注入的,在本例中是FunctionalTestEnvironmentHelper
。在集成环境中,使用IntegrationTestEnvironmentHelper
。
我有一个包含最大规模规范文件的测试套件。它们都 运行 在我的 DIC 上的内存实现上很好,这是蛋糕模式的实现。
现在我想要 运行 与集成测试相同的测试套件,这意味着内存中的实现将被与数据库对话的集合所取代,github API'与等通信的s
- 我是否应该创建不同的 sbt 环境并将我的 di 容器放在两个独立的环境(功能和集成)中,其中一个根据环境加载?这样做的最佳方法是什么?
我能否以某种方式在混合了容器的功能和集成测试套件中收集测试?像这样的东西会如何工作?在哪里定义?
val functionalTestSuite = new TestSuite with FunctionalTestEnvironment val integrationTestSuite = new TestSuite with IntegrationTestEnvironment
我想重新使用我的测试来防止代码重复,但我很难在 Scala 中解决这个问题,因为我对这种语言还很陌生。
我最终制作了单独的测试套件。稍后我可以将 sbt 配置为仅 运行 这些文件,而不是让它自动搜索文件。
这样做的缺点是每次都需要大量的样板文件来将测试添加到套件中。我希望有人会编辑我的答案以删除样板文件。
class FunctionalTestingSuite extends Suites {
override val nestedSuites : IndexedSeq[Suite] = {
//val actorSystem = FunctionalSpec.createActorSystem
IndexedSeq(
new CodeRepositorySpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper,
new PipelineCollectionSpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper,
new PipelineControllerSpec with FunctionalTestEnvironmentHelper,
new PipelineSpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper,
new JobCollectionSpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper,
new JobControllerSpec with FunctionalTestEnvironmentHelper,
new JobSpec(FunctionalSpec.createActorSystem) with FunctionalTestEnvironmentHelper
)
}
}
依赖注入容器每次都是通过混合一个特征来注入的,在本例中是FunctionalTestEnvironmentHelper
。在集成环境中,使用IntegrationTestEnvironmentHelper
。