针对本地数据库的Rspec测试

时间:2016-04-05 00:52:59

标签: mysql ruby-on-rails ruby sqlite rspec

我目前正在运行一个应用程序,它使用带有MySQL2 gem的Ruby 2.1.4将数据从API移动到MySQL数据库中。

我正在尝试为此应用程序创建RSPEC测试,但问题是应用程序主要是MySQL查询,我不想模拟查询调用,因为我想测试我的查询以确保它们按预期工作。

我尝试在本地运行rspec时将客户端更改为sqlite3 gem,但问题是SQLite3和MySQL2不能同样处理查询。 (Mysql2使用Client.query,其中SQLite使用Client.execute。)

我试图模仿rails + rspec如何在本地使用sqlite但远程使用mysql。

如何在不必启动外部服务器的情况下在本地执行此操作? 我是否需要使用ActiveRecord或者是否有某种方法可以创建一个CSV文件,我可以将其传递给我在应用程序开头创建的MySQL客户端?

我感谢我能得到的任何帮助,或者您对如何调整我对此问题的处理方法的任何建议。代码snipppits如下:

RSPEC测试 RSPEC test

Ruby应用程序 Ruby Application

1 个答案:

答案 0 :(得分:1)

为什么不在测试环境中完全使用MySQL,而不是试图在方孔中安装圆形钉? sqlite3并不总能准确地模拟MySQL,因此您只需在本地计算机上设置和使用MySQL就可以获得更可靠的测试。您可能会发现您的测试也可以更快地运行。

就我个人而言,我总是针对我在生产中运行的同一类型的数据库进行测试,以避免像您描述的问题。