我正在研究这个项目,我从远程生产数据库中选择。我的用户只授予SELECT
,因此它相对安全。但是现在我来到了必须测试查询对象的地步,这有点痛苦。
但我无法运行测试,因为它试图删除我的用户不允许的数据库。如何配置Rspec,以便它不对db做任何事情?
现在我在Rails控制台中手动测试了这个:
expected = {...}
QueryObject.new.call
# SELECT ...
_ == expected
=> true
答案 0 :(得分:1)
一般来说,针对实时数据库进行测试是一个坏主意。
从生产数据库中提取一些样本数据,并使用fixture或工厂将其添加到测试数据库中。然后,您可以对测试数据库执行查询,而不必担心: