首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Play 2.x对MySQL数据库进行单元测试?

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

Stack Overflow用户
提问于 2013-03-01 06:13:43
回答 1查看 3K关注 0票数 3

我需要测试我的代码是否创建了正确的数据库语句。我知道我可以用内存中的数据库运行我的应用程序。它并不完美,但对于这个项目来说已经足够了。我的SQL包含特定于MySQL的内容。

当我运行我的测试时,它会中断包含以下内容的进化:

代码语言:javascript
复制
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特有的语法解决这些问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-01 06:13:43

我找到了一种方法来绕过(大多数)特定于MySQL的东西(问题1)。

代码语言:javascript
复制
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部分所述。

另一部分是c样式的注释,如MySQL文档的Comment Syntax部分所述。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15146723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档