Невозможно издеваться над таблицей в пятно - PullRequest
0 голосов
/ 25 марта 2019

У меня есть приложение scala-play-slick, и я использую Google Guice для внедрения зависимостей.Slick version 3.0.3 Мой репозиторий выглядит следующим образом

@Singleton
class Repository @Inject()(dbConfigProvider: DatabaseConfigProvider)(
    implicit ec: ExecutionContext) {

  private val dbConfig = dbConfigProvider.get[JdbcProfile]

  import dbConfig._
  import profile.api._

  private class MyTable(tag: Tag) extends Table[ModelObject](tag, "TableName") {

    def id = column[Int]("id", O.PrimaryKey, O.AutoInc)

    def * =
      (id) <> ((ModelObject.apply _).tupled, ModelObject.unapply)
  }

  private val myTable = TableQuery[MyTable]

  def getAll: Future[Seq[ModelObject]] = db.run {
    myTable.result
  }
// remaining code

Теперь, чтобы выполнить модульное тестирование кода, у меня есть следующий код

class RepositoryTest extends FunSuite with Matchers with BeforeAndAfterEach {

  private var databaseConfigProvider : DatabaseConfigProvider = _
  private var repository : Repository = _

  override def beforeEach(): Unit = {
    databaseConfigProvider = mock(classOf[DatabaseConfigProvider])
    repository = new Repository(databaseConfigProvider)
  }

  test("should get all the model object"){
    val result = usersRepository.getAll(userRequest).await
    result shouldBe modelObjects
  }

}

Во время выполнения теста я получаюИсключение Nullpointer

java.lang.NullPointerException was thrown.
java.lang.NullPointerException

в строке db.run в методе getAll.Теперь мой вопрос: как мне смоделировать MyTable, чтобы избежать исключения нулевого указателя.

Любые указатели будут очень полезны.Заранее спасибо !!!

...