Rspecs с рубиновым файлом - PullRequest
       2

Rspecs с рубиновым файлом

0 голосов
/ 02 октября 2018

У меня есть файл ruby ​​plane.rb

с таким классом ruby ​​-

class AirplaneSeat
 attr_accessor :seat_row, :seat_column, :type, :order, :assigned_passenger

  def initialize(seat_row, seat_column, type, order, assigned_passenger = 0)
    @seat_row = seat_row
    @seat_column = seat_column
    @type = type
    @order = order
    @assigned_passenger = assigned_passenger
  end

  def get_passenger_seating
    #some code   
  end
end # end of class

# outside the class
begin
  puts "Enter the seating matrix as 2D array"
  seat_matrix = JSON.parse gets.chomp

  puts "Enter the number of passengers"
  no_of_passengers = gets.chomp
  raise "Please enter a valid passenger count" if (no_of_passengers.empty? || no_of_passengers.to_i <=0)

  AirplaneSeat.get_passenger_seating(seat_matrix, no_of_passengers)
rescue Exception => e
  puts "Error encountered -> #{e.message}"
end

Таким образом, у класса ruby ​​есть несколько методов и несколько строк кода для выполнения внекласс, который получает данные от пользователя и затем вызывает метод класса.

Как мне написать контрольные примеры для этого?У меня есть настройка rspecs gem и папок spec.Я не очень понимаю, как начать с тестовых случаев.Любые указатели очень ценятся.Спасибо! * * 1008

1 Ответ

0 голосов
/ 02 октября 2018

В качестве простого примера скажем, что у нас есть файл для класса Foo, foo.rb:

class Foo
  def call
    'bar'
  end
end

Мы можем создать спецификацию, foo_spec.rb:

require 'rspec'
require_relative 'foo'

RSpec.describe Foo do
  describe '#call' do
    it 'works' do
      expect(described_class.new.call).to eq 'Bar'
    end
  end
end

И затем из командной строки мы можем запустить спецификацию:

$ rspec foo_spec.rb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...