Rails测试与触发器

Non*_*nos 5 ruby testing ruby-on-rails

我注意到Rails在开发数据库中创建了触发器而不是测试数据库,因为它从schema.rb创建测试数据库而不是运行迁移.我有一个触发器(作为迁移)并且需要测试它做对了,我该怎么做?我尝试手动将触发器添加到测试数据库,但这不起作用.

Fre*_*ung 5

默认情况下,rails 使用独立于数据库的 schema.rb 设置测试数据库,它不理解触发器之类的东西。

如果您更改config.active_record_schema_format为,:sql那么 rails 将转储代表开发数据库结构的原始 SQL,并使用它来重新创建测试数据库。此转储放在 development.sql 中,然后使用它代替 schema.rb

此转储是使用您的数据库提供的命令行工具完成的,因此将尊重活动记录不知道的触发器等功能