«вложенных» блоков?
Система создаёт таблицы в базе. Хочу написать DSL и тесты. Указываем какие таблицы должны создаться, оно создаёт (или нет), а потом assert на тему «есть ли таблица»
Пример «чего хочется» :
@Test fun simpleTable() {
val config = tableConfig {
// Или val users by tables.creating {
val users = table("users") {
column("id")
column("name")
}
}
db.installConfig(config)
assertTableExists(config.tables.users) // <— вот как тут обратиться к users?
assertTableExists(config.tables.users.columns.name)
Вроде, Gradle в подобных случаях кодогенерацией занимается. Без неё как-нибудь можно или нет?
Ну, понятно, что можно config.tables["users"], но переименуешь сущность и всё сломается 😕
Я так думаю, что без декларации нельзя, конечно можно генерировать как в грейдле, но для базы всё сложнее.
Обсуждают сегодня