在specs2中对依赖注入的支持有限,主要用于执行环境或命令行参数.
没有什么可以阻止你只使用一个lazy val
和你最喜欢的注射框架:
class MySpec extends Specification with Inject { lazy val reportService = inject[ReportService] ... }
使用Play和Guice,您可以拥有一个测试助手,例如:
import play.api.inject.guice.GuiceApplicationBuilder import scala.reflect.ClassTag trait Inject { lazy val injector = (new GuiceApplicationBuilder).injector() def inject[T : ClassTag]: T = injector.instanceOf[T] }