gpt4 book ai didi

mysql - 如何使用 Play 2.x 对 MySQL 数据库进行单元测试?

转载 作者:可可西里 更新时间:2023-11-01 07:48:15 27 4
gpt4 key购买 nike

我需要测试我的代码是否创建了正确的数据库语句。我知道我可以使用内存数据库运行我的应用程序。它并不完美,但对于这个项目来说已经足够了。我的 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'

如何解决MySQL特定语法的问题?

最佳答案

我找到了一种解决(大部分)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
}
}

请注意,H2 有一个 MODE=MySQL,如 Working with the in-memory H2 database 中所述。 Play 文档的一部分。

另一部分是 Comment Syntax 中描述的 c 风格注释。 MySQL 文档的一部分。

关于mysql - 如何使用 Play 2.x 对 MySQL 数据库进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146723/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com