小编Sam*_*uel的帖子

RSpec 错误 用户必须与 FactoryGirl 一起存在

我正在创建一些测试来测试控制器和模型。当我使用 FactoryGirl 创建虚假数据时,我收到了用户(记录所属的)不存在的错误。

这是我的模型 composition.rb

class Composition < ActiveRecord::Base
  belongs_to :user
  belongs_to :group

  validates :name, presence: true, uniqueness: {scope: :user_id}

end
Run Code Online (Sandbox Code Playgroud)

这是我的 FactoryGirl 文件 composition.rb

require 'faker'

FactoryGirl.define do
  factory :composition do
    name { Faker::Name.name }
    description { Faker::Lorem.words }
    import_composition { Faker::Boolean.boolean }
    import_composition_file { Faker::File.file_name('path/to') }
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的 RSpec 测试

require 'rails_helper'

  describe CompositionsController do

    before(:each) do
       @user = FactoryGirl.create(:user)
       @group = FactoryGirl.create(:group)
       sign_in @user
       @composition = Composition.new(FactoryGirl.create(:composition), user_id: @user.id, group_id: @group.id)
    end

  describe "GET #index" do …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails factory-bot

6
推荐指数
1
解决办法
1504
查看次数

Rails RSpec意外警报打开

使用RSpec和Capybara我试图在网页上测试删除功能.

视图中按钮的代码是:

<%= link_to "&times".html_safe, material, method: :delete, data: { confirm: 'Are you sure?' }
Run Code Online (Sandbox Code Playgroud)

我想为它编写RSpec测试,以便能够单击确认框中的"确定"按钮.到目前为止我得到了以下内容

feature 'Delete materials' do
  before do
    @user = FactoryGirl.create(:user)
    @group = FactoryGirl.create(:group)
    @user.groups << @group
    @material_1 = FactoryGirl.create(:material, user: @user, group: @group)
    login_as(@user, scope: :user)
  end

  scenario "in the index should give a confirmation box", js: true do
    visit materials_path
    expect(Material.count).to eq(1)

    accept_confirm do
      find('a[data-method="delete"]').click
      click_link "OK"
    end

    expect(Material.count).to eq(0)
  end
end
Run Code Online (Sandbox Code Playgroud)

我一直得到的错误是:

Selenium::WebDriver::Error::UnhandledAlertError:
       unexpected alert open: {Alert text : Are you sure?}
         (Session …
Run Code Online (Sandbox Code Playgroud)

ruby selenium rspec ruby-on-rails

2
推荐指数
1
解决办法
923
查看次数

标签 统计

rspec ×2

ruby-on-rails ×2

factory-bot ×1

ruby ×1

selenium ×1