Tag: 装置

带回形针的夹具

我正在使用Paperclip存储文档,但我找不到如何创建它们的装置,我写道: File.open(Rails.root.join(‘spec’, ‘assets’, ‘image.png’))) %> : asset_file_name: asset_content_type: asset_file_size: asset_updated_at: documentable: party (Event) %> 但是我运行它,文档存在于数据库中,但它没有存储。 我应该自己存储文件(写文件)吗? 或者还有其他方式吗?

在Ruby on Rails中使用夹具播种数据是危险的

我有需要驻留在我的数据库(国家,地区,运营商等)的初始数据。 我有一个任务rake db:seed将为数据库设定种子。 namespace :db do desc “Load seed fixtures (from db/fixtures) into the current environment’s database.” task :seed => :environment do require ‘active_record/fixtures’ Dir.glob(RAILS_ROOT + ‘/db/fixtures/yamls/*.yml’).each do |file| Fixtures.create_fixtures(‘db/fixtures/yamls’, File.basename(file, ‘.*’)) end end end 我有点担心,因为这个任务擦除我的数据库干净并加载初始数据。 这甚至可能在生产中不止一次这样做的事实吓跑了我。 这是正常的,我只需要谨慎吗? 或者人们通常以某种方式保护这样的任务?

测试时按特定顺序装载导轨夹具

有没有办法在运行测试时按特定顺序加载Rails灯具? 例如,参加以下课程…… class User < ActiveRecord::Base has_many :memberships has_many :groups, through: :memberships end class Group < ActiveRecord::Base has_many :memberships has_many :users, through: :memberships end class Membership < ActiveRecord::Base belongs_to :user belongs_to :group end Memberships具有数据库级外键约束,要求Users和Groups在创建之前存在。 但是,由于Rails按字母顺序加载fixture,因此Memberships在Users之前加载Memberships ,并且会发生错误,指出关系不存在(正确地说是这样)。 ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: insert or update on table “memberships” violates foreign key constraint 有没有办法在运行测试时加载Memberships之前加载Users和Groups夹具?

Railsunit testing不会加载灯具

rake test:units在我当前的应用程序中失败,因为缺少了所需的灯具数据。 如果我通过rake db:fixtures:load RAILS_ENV=test fixtures手动加载rake db:fixtures:load RAILS_ENV=testunit testing正在运行,但是rake清除了测试数据库。 我的test_helper包含fixtures :all和我的测试都是从它inheritance的 – 但是灯具根本就没有加载。 我现在有点无能为力,真的需要一些帮助! 我已经尝试了很多,我认为它与这个项目中使用的一些环境设置或插件有关。 有谁知道在哪里阅读有关为测试环境加载哪些文件?

使用Rails和Devise进行function测试。 把什么放在我的灯具里?

嗨,我想对使用Devise和CanCan的Rails 3应用程序进行一些function测试。 在我的用户模型中,我有用户年龄,我想测试一个用户只能访问某个页面,如果它们是: 登录 超过35岁 我在Devise文档中看到我可以使用:* sign_in *并且我把它放在我的测试中它似乎工作 – 测试没有错误,因为我有: include Devise::TestHelpers 在我的* test_helper.rb * 当我拿出它时,我的测试会出错,因为* sign_in *没有定义。 所以这不是帮手问题。 当我运行测试并检查span#loggedin是否有一次出现时,测试失败,因为有0次出现。 span#loggedin仅出现* if user_signed_in?* 我需要在我的灯具或测试中创建一个也是完全注册用户(已确认等)的测试用户? 查看代码: User is signed in User age is 测试代码: test “should get index” do sign_in :one get :index assert_response :success assert_select ‘span#loggedin’, :count => 1 end 夹具: one: email: jez@example.com age: […]