Я запускаю игрушечный проект с Grails , но у меня возникают некоторые проблемы с базой данных HSQLDB . Мой файл DataSource.groovy является файлом по умолчанию:
environments {
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
url = "jdbc:hsqldb:mem:devDB"
loggingSql = true
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:mem:testDb"
loggingSql = true
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:file:prodDb;shutdown=true"
}
}
}
И я провожу простой тест:
class BookTests extends GrailsUnitTestCase {
protected void setUp() {
super.setUp()
mockDomain (Book)
def book = new Book ("The shinning","Some guy who wrote it")
if (book.save()){
println ("YEAH")
}
else{
print ("AWWWWHH")
}
}
protected void tearDown() {
super.tearDown()
}
void testSomething() {
def books = Book.getAll()
print (books.size())
}
}
После book.save()
в методе setUp()
я получаю «ДА», но в методе testSomething()
books.size()
оказывается равным 0.
1 тестовый класс найден в пакете 'test'
ДА 0 Процесс завершен с кодом выхода
0
Я что-то пропускаю? У меня сложилось впечатление, что этот HSQLDB был настроен для тестирования разработки, но у меня были некоторые проблемы в обеих средах (либо с этим тестом, либо с очень простым приложением).