我有一个由scalatest spec文件组成的测试套件。它们都在我的DIC上的内存实现中运行良好,这是一种蛋糕模式的实现。
现在我想运行与集成测试相同的测试套件,这意味着内存中的实现将被与数据库通信的集合,与之通信的github API等替换。
我可以以某种方式在容器混入的功能和集成测试套件中收集测试吗?这样的事情怎么样?在哪里定义?
xyz@xyz.xyz
我想重新使用我的测试来防止代码重复,但我很难在scala中解决这个问题,因为我对这种语言很陌生。
答案 0 :(得分:0)
我最终制作了单独的测试套件。后来我可以配置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
。