Я использую базу данных h2 для проверки моей postgres гладкой функциональности.
Я создал следующий h2DbComponent:
trait H2DBComponent extends DbComponent {
val driver = slick.jdbc.H2Profile
import driver.api._
val h2Url = "jdbc:h2:mem:test;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;INIT=runscript from './test/resources/schema.sql'\\;runscript from './test/resources/schemadata.sql'"
val logger = LoggerFactory.getLogger(this.getClass)
val db: Database = {
logger.info("Creating test connection ..................................")
Database.forURL(url = h2Url, driver = "org.h2.Driver")
}
}
В приведенном выше фрагменте я создаю свои таблицы с использованием схемы. sql и вставляю одну строку (запись) со схемаданными. sql .
Затем я пытаюсь вставить запись в таблицу, как показано ниже, используя мой тестовый пример:
class RequestRepoTest extends FunSuite with RequestRepo with H2DBComponent {
test("Add new Request") {
val response = insertRequest(Request("XYZ","tk", "DM", "RUNNING", "0.1", "l1", "file1",
Timestamp.valueOf("2016-06-22 19:10:25"), Some(Timestamp.valueOf("2016-06-22 19:10:25")), Some("scienceType")))
val actualResult=Await.result(response,10 seconds)
assert(actualResult===1)
val response2 = getAllRequest()
assert(Await.result(response2, 5 seconds).size === 2)
}
}
Приведенное выше утверждение о вставке отлично работает, утверждая, что запись вставлена. Но завершение getAllRequest () завершается ошибкой, поскольку выходные данные по-прежнему содержат одну строку (как вставлено schemadata. sql) =>, что означает, что изменение insertRequest не сохраняется. Однако в приведенных ниже инструкциях говорится, что запись вставлена, поскольку вставка вернула 1, указав одну вставленную запись.
val response = insertRequest(Request("CMP_XYZ","tesco_uk", "DM", "RUNNING", "0.1", "l1", "file1",
Timestamp.valueOf("2016-06-22 19:10:25"), Some(Timestamp.valueOf("2016-06-22 19:10:25")),
Some("scienceType")))
val actualResult=Await.result(response,10 seconds)
Ниже приведено мое определение insertRequest:
def insertRequest(request: Request):Future[Int]= {
db.run { requestTableQuery += request }
}
Я не могу определить Как я могу увидеть вставленную запись. Есть ли свойство / конфиг, который мне нужно добавить?