Метод контроля RSpec Unit Testing - PullRequest
0 голосов
/ 07 декабря 2018

я относительно новичок в rspec и тестировании, пытаюсь написать тест для этого кода

@assessments = Assessment.where(assigned_user_id: current_user.id)

вот что я пробовал до сих пор, но я не уверен, что это правильный путь, я былуказанная спецификация контроллера не рекомендуется, поэтому я пытаюсь реализовать ее с помощью модульного теста.

spec_file

    require 'rails_helper'

# Test suite for the assessment model
RSpec.describe Assessment, type: :model do
  let(:admin) { User.new(email: 'rockcoolsaint@example.com', password: 'password', password_confirmation: 'password', role: :admin) }
  let(:behavioral_specialist) { User.new(email: 'bs@example.com', password: 'password', password_confirmation: 'password', role: :behavioral_specialist) }
  let(:behavioral_specialist_2) { User.new(email: 'bs2@example.com', password: 'password', password_confirmation: 'password', role: :behavioral_specialist) }
  let(:bs_user_assessments) { Assessment.where(assigned_user_id: behavioral_specialist.id) }

  describe 'Validations' do
    it { should validate_presence_of(:title) }

    it 'is valid with all attributes' do
      expect(build(:assessment, user: admin, assigned_user: behavioral_specialist)).to be_valid
    end

    it 'is valid if assigned_user_id equals behavioral_specialist_id' do
      bs_user_assessments.each do |assessment|
        expect(assessment.assigned_user_id).to eq(behavioral_specialist.id)  
      end
    end

    it 'is valid if assigned_user_id does not equal behavioral_specialist_2_id' do
      bs_user_assessments.each do |assessment|
        expect(assessment.assigned_user_id).to_not eq(behavioral_specialist_2.id)  
      end
    end
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...