У меня есть приложение 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, чтобы избежать исключения нулевого указателя.
Любые указатели будут очень полезны.Заранее спасибо !!!