我将DAO定义如下:
@Singleton
class MyDAO @Inject()(protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile] {
我有一个引用此DAO的集成测试:
class SomeIntegrationTest {
lazy val someVal = new MyDAO
}
如何将DatabaseConfigProvider
注入SomeIntegrationTest中的MyDAO
?我不能在测试的构造函数中注入一个,因为测试类不接受构造函数参数。
答案 0 :(得分:2)
您可以通过执行
来注入您的依赖项class DefaultController extends Controller
{
public function indexAction()
{
return $this->render('CustomBookBundle:Default:index.html.twig');
}
}
其中val dbConfigProvider = app.injector.instanceOf[DatabaseConfigProvider]
是FakeApplication的实例。没有它,Play就无法为你注入依赖。您可以通过扩展app
来获取FakeApplication
的实例,请参阅提供的链接以获取更多详细信息。
通常,您可以通过三种主要方式访问测试中的某些对象: