Создать глобальную схему БД для Kotlin тестовых случаев с открытой структурой - PullRequest
1 голос
/ 04 мая 2020

Я новичок в Kotlin -Exposed Framework. Я ищу схему Global DB в H2 База данных - jdb c: h2: mem: test для моих тестов.

В моем приложении я использую mysql. Я хочу использовать H2 только для тестирования.

Ниже приведен мой фрагмент кода для справки.


object ConnectToDatabase : TestListener {
    var database: Database? = null
    override suspend fun beforeSpec(spec: Spec) {
        database = Database.connect("jdbc:h2:mem:testdb", driver = "org.h2.Driver")
    }
}


class StudentProcessorTests : FreeSpec() {
    override fun listeners(): List<TestListener> = listOf(ConnectToDatabase)
    val DaggerObj = DaggerObject.create()
    val studentProcessor = DaggerObj.studentProcessor();



    private fun createTable(table: Table) {
        transaction {
            SchemaUtils.create(table)
        }
    }


    private fun insertSampleRowForStudent() {
        transaction {
            Student.insert {
                //code
            }
        }
    }

    private fun insertSampleRowForDepartment() {
        transaction {
            Department.insert {
                //code
            }
        }
    }


    init {

            "Case1"   {
                transaction {
                    createTable(Student)
                    createTable(Department)
                    createTable(Faculty)
                    insertSampleRowForStudent()
                    insertSampleRowForDepartment()
                    val response = studentProcessor.createStudent(StudentObject)
                    Assert.assertTrue(response > 0)
                }
            }

            "Case2" {
                transaction {
                    createTable(Student)
                    createTable(Department)
                    createTable(Faculty)
                    insertSampleRowForStudent()
                    insertSampleRowForDepartment()
                }
            }

        }

}

Здесь, каждый раз, когда мне приходится писать - createTable для каждого теста. Есть ли способ, с помощью которого я могу определить эту схему глобально и избавиться от этой части для каждого теста.

...