在Scala上使用Finatra实现IntegrationTest时遇到了问题。我只是按照他们的官方文档进行早期实施,但我收到了错误
[error] D:\Workspace\OpenSource\kanca-api\src\test\scala\io\kanca\GraphTestModule.scala:4:8: object TwitterModule is not a member of package com.twitter.inject
[error] import com.twitter.inject.TwitterModule
[error] ^
[error] D:\Workspace\OpenSource\kanca-api\src\test\scala\io\kanca\GraphTestModule.scala:7:32: not found: type TwitterModule
[error] object GraphTestModule extends TwitterModule {
[error] ^
这是我的模块
import com.google.inject.{Provides, Singleton}
import com.twitter.inject.TwitterModule
import io.kanca.fbgraph.Graph
object GraphTestModule extends TwitterModule {
@Singleton
@Provides
def providesGraph: Graph = new Graph
}
这是我的测试套件
import com.twitter.inject.IntegrationTest
import com.twitter.inject.app.TestInjector
class MySQLSpec extends IntegrationTest {
def injector =
TestInjector(
modules =
Seq(GraphTestModule))
.create
val graph = injector.instance[Graph]
...
}
如果您想查看完整的源代码,请https://github.com/hellowin/kanca-api/tree/try-module运行sbt test
。为了进行比较,请查看master
分支,我还没有实现DI,它运行良好。
我的实施有什么问题?
答案 0 :(得分:0)
我已经解决了,基本上是因为build.sbt
上缺少TestDependencies。我尝试了这种依赖关系,一切顺利。
"com.twitter" %% "finatra-http" % versions.twitter % Test classifier "tests",
"com.twitter" %% "inject-app" % versions.twitter,
"com.twitter" %% "inject-app" % versions.twitter % Test classifier "tests",
"com.twitter" %% "inject-core" % versions.twitter,
"com.twitter" %% "inject-core" % versions.twitter % Test classifier "tests",
"com.twitter" %% "inject-modules" % versions.twitter,
"com.twitter" %% "inject-modules" % versions.twitter % Test classifier "tests",
"com.twitter" %% "inject-server" % versions.twitter,
"com.twitter" %% "inject-server" % versions.twitter % Test classifier "tests",
"com.twitter" %% "inject-utils" % versions.twitter,
"com.twitter" %% "inject-utils" % versions.twitter % Test,
"org.mockito" % "mockito-all" % versions.mockito,
"org.mockito" % "mockito-all" % versions.mockito % Test,
"org.specs2" %% "specs2-mock" % versions.specs2,
"org.specs2" %% "specs2-mock" % versions.specs2 % Test,
"com.google.inject.extensions" % "guice-testlib" % versions.guice % Test,
"com.google.inject.extensions" % "guice-testlib" % versions.guice % Test classifier "tests",