Rails 在哪里存储测试期间通过保存 activerecord 对象创建的数据?
我以为我知道这个问题的答案:显然在_test 数据库中。但看起来这不是真的!
我使用这个系统来测试在 rspec 测试期间保存的 ActiveRecord 数据发生了什么:
$ rails -d mysql 测试
$ cd 测试
$ 纳米配置/database.yml ...
... 创建 mysql 数据库 test_test、test_development、test_production
$ 脚本/生成 rspec
$ 脚本/生成 rspec_model foo
编辑 Foo 迁移:
类 CreateFoos$ 耙分贝:迁移
编辑规范/模型/foo_spec.rb:
需要 File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 描述 Foo do 之前(:每个)做 @valid_attributes = { :酒吧 => 12345 } 结尾 它“应该在给定有效属性的情况下创建一个新实例” foo = Foo.new(@valid_attributes) foo.save 放“睡觉……” 睡觉(20) 结尾 结尾$ 耙子规格
当您看到“sleeping...”时,切换到另一个打开的终端,其中 mysql 会话连接到 test_test 数据库并执行以下操作:
mysql> 从 foos 中选择 *; 空集(0.00 秒)
为什么 mysql 会话在测试运行时不显示 test_test 数据库中的任何记录?