EEC*_*LOR 3 mysql database unit-testing playframework-2.0 playframework-2.1
我需要测试我的代码是否创建了正确的数据库语句.我知道我可以使用内存数据库运行我的应用程序.它并不完美,但足以满足这个项目的需要.我的SQL包含MySQL特定的东西.
当我运行我的测试时,它打破了包含以下内容的进化:
CREATE TABLE `Beaches` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB;
COLLATE='utf8_general_ci'
Run Code Online (Sandbox Code Playgroud)
如何解决MySQL特定语法的问题?
EEC*_*LOR 10
我找到了一种绕过(大多数)MySQL特定内容的方法(问题1)
running(FakeApplication(additionalConfiguration =
inMemoryDatabase(options=Map("MODE" -> "MySQL")))) {
DB.withConnection { implicit c =>
SQL("""
CREATE TABLE `Beaches` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
)
/*! ENGINE=InnoDB; */
/*! COLLATE='utf8_general_ci' */
"""
).execute()
ok
}
}
Run Code Online (Sandbox Code Playgroud)
需要注意的是H2具有MODE=MySQL如所描述的与内存H2数据库工作的播放文件的部分.
另一部分是MySQL文档的Comment Syntax部分中描述的c样式注释.
| 归档时间: |
|
| 查看次数: |
2869 次 |
| 最近记录: |