我正在尝试测试一些操作。他们需要我使用 Silhouette 创建的安全材料。
我有一个模块来配置 DI 中的剪影security.Module
,在我的conf/application.conf
文件中我有以下行:
play.modules.enabled += "security.Module"
当我运行测试时,我收到一条错误消息:
No implementation for com.mohiva.play.silhouette.api.Silhouette<security.JwtEnv> was bound.
如果我在security.Module
课堂上设置断点,它永远不会被触发。但是,如果我在我的主Module
类中设置一个断点,它就是。security.Module
因此,尽管GuiceApplicationBuilder的文档说启用的模块是自动加载的,但我可以看到我的模块从未被加载。
这是我GuiceApplicationBuilder
在测试类中的配置方式(基于 scalatest):
class TestUserController extends PlaySpec with OneAppPerTest with Results {
val identity = UserDao(
id = Some(10),
email = Some("testuser@example.com"),
createdAt = DateTime.parse("2016-11-11T11:11:11")
)
val loginInfo = LoginInfo("credentials", identity.email.get)
implicit val env = FakeEnvironment[JwtEnv](Seq(loginInfo -> identity))
implicit override def newAppForTest(td: TestData) = new GuiceApplicationBuilder()
.overrides(bind[UsersBlockedRepo].to[MockUsersBlockedRepo])
.build
//...
}
我缺少什么GuiceApplicationBuilder
来加载我的安全模块?