Ошибка Finatra IntegrationTest с объектом TwitterModule не является членом пакета com.twitter.inject

У меня возникла проблема при реализации IntegrationTest с Finatra на Scala. Я просто следую их официальным документам для ранней реализации, но я получил ошибку

[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 и она работает отлично.

Что не так с моей реализацией?


person Andi N. Dirgantara    schedule 24.12.2017    source источник


Ответы (1)


Я решил это, в основном это из-за отсутствия TestDependencies на build.sbt. Я пробовал с этими зависимостями, и все прошло хорошо.

"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",

Вот мой собственный PR https://github.com/hellowin/kanca-api/pull/3/files

person Andi N. Dirgantara    schedule 25.12.2017