Tag: 夹具

具有多态关联的灯具不起作用

我正在尝试实现Rolify gem但是无法添加具有范围的灯具。 下面的(模型)测试的最后一行失败,因为目前主持人角色似乎全局给予@user ,而不是仅给予组织1。 下面的灯具没有使用resource_id和resource_type ,它们在gem文件中提到了夹具,但我不知道如何使用它们。 如何将主持人角色的范围设置为仅限组织1? roles.yml moderator: id: 1 resource: one (Organization) users.yml里 one: email: example@example.com roles: moderator, organizations(:one) # I was hoping this would set the scope of the role to organization one but it isn’t (seems to set the role globally). test.rb def setup @moderator_role = roles(:moderator) @organization1 = organizations(:one) @organization2 […]

Rails中的多个Fixture集?

有没有办法让Rails测试有不同的夹具组(你可以称之为“夹具轮廓”)? 我发现的最好的是2006年的Rails 1.3插件 。 我认为对这种事情的需求会更多。 就我而言,我想要一个“离线”配置文件,其中包括所有数据的缓存,以及获取数据所需的另一个“在线”配置文件。

Ruby on Rails用外键删除灯具

我用使用外键的灯具设置测试时遇到了麻烦! 如果有人能帮我理解这一点,我将不胜感激。 比方说,例如:user_type模型引用了:role模型,当执行测试时,测试数据库中的所有数据都被删除以再次重新插入,Rails首先从角色模型中删除数据,而不是首先从:user_type删除数据,然后从:role删除数据。 固定装置: #roles.yml technical: name: ‘Technical’ obs: ‘User Role for technical / maintenance users!’ #user_types.yml technic: role: technical name: ‘Technic’ is_admin: true 测试: #app/test/models/role_test.rb require ‘test_helper’ class RoleTest < ActiveSupport::TestCase fixtures :roles test 'save Role without name' do data = Role.new() data.valid? assert data.errors.added?(:name, :blank), 'Role saved without name!' end end #app/test/models/user_type_test.rb require […]

“rake db:seed”和rake db:fixtures:load“之间的区别是什么?

我是Ruby和Rails的新手,对某些事情感到好奇。 在两个不同的教程中,我看到他们使用不同的方法来填充具有基本测试信息的数据库。 一个使用“rake db:seed”从包含样本数据的文本文件中提取。 另一个使用“rake db:fixtures:load”。 对我来说,他们看起来完全一样。 他们,或者我在这里遗失了什么? (极有可能)

Rails 3测试夹具与carrierwave?

我正在努力从attachment_fu升级到carrierwave,因为attachment_fu在rails 3中被破坏了。 没有一个测试能够运行,因为我们有无效的灯具使用attachment_fu的语法来附件文件。 例如,我们有一个Post模型,它有一个PostAttachment。 以下是PostAttachment夹具中的数据: a_image: post_id: 1 attachment_file: /test/files/test.png 这是我得到的错误: ActiveRecord::StatementInvalid: PGError: ERROR: column “attachment_file” of relation “post_attachments” does not exist LINE 1: INSERT INTO “post_attachments” (“post_id”, “attachment_file”… attachment_file将拾取attachment_file,它将处理为模型创建attachment_fu附件的所有处理。 有没有办法在灯具中有图像附件,但是使用CarrierWave代替?

Rails不会为fixture生成created_at

我有一个模型问题,其中包含“question_id”,“elapsed_time”,“allowed_time”和“status”作为其字段,以及一个名为Reporting的控制器,它接收包含问题的JSON并保存。 (“question_id”与我的任何模型无关) 到目前为止没有问题。 直到我尝试运行一些测试。 当Rails尝试加载我的问题夹具时出错: ActiveRecord::StatementInvalid: SQLite3::ConstraintException: questions.created_at may not be NULL: INSERT INTO “questions ” 这是我的装备: one: id: 1 question_id: MyString app: MyString guid: 1 status: 1 elapsed_time: 1 allowed_time: 1 和我的模特: class CreateQuestions < ActiveRecord::Migration def change create_table :questions do |t| t.string :app t.integer :guid t.string :question_id t.integer :elapsed_time t.integer :allowed_time t.datetime :happened_at […]

阻止Rails测试删除种子数据

我使用seeds.rb来填充一些状态模型参考数据: State.create :name => ‘Alabama’, :abbreviation => ‘AL’ State.create :name => ‘Alaska’, :abbreviation => ‘AK’ # … 虽然我没有使用状态装置(因为它的种子数据开始,我认为不必为了测试而必须复制它),Rails测试框架似乎在测试期间删除了所有状态种子数据。 (我正在删除,重新创建,迁移和重新安装测试数据库,并在unit testing运行之前确认数据存在。) 结果是这个断言在seeds.rb中成功但在一行测试中失败: assert_equal 51, State.all.size 1) Failure: test_state_seeds_are_present(StateTest) [/test/unit/state_test.rb:24]: expected but was . 1 tests, 1 assertions, 1 failures, 0 errors 我已经尝试在基本测试类fixtures语句中明确列出非状态模型,以及翻转事务fixtures标志(正如预期的那样,这只会影响测试期间创建的记录)。 当然,正在考虑的测试本身并不删除这些记录。 始终删除州记录。 有没有办法告诉Rails只是脱掉种子数据? 我是否需要复制灯具中的所有数据以确保它重新加载? 如果没有重大政治事件,我预计州的数据会相对稳定。 TIA