2015-06-02 1 views
0
class Party 
    attr_accessor :number 
    include Validations 

    def initialize 
     self.number = proccess_args(2) 
     puts luhn? 
    end 

    def proccess_args(opt) 
     ARGV[opt].downcase 
    end 
end 

требуют '' spec_helperКак окурок метод в инициализируем RSpec

describe Party do 
    before :each do 

    new_method = Party.method(:new) 
    allow(self).to receive(proccess_args).with(2).and_return('add') 
    @party = Party.new 
    end 
end 

spec_helper.rb require_relative '../'

require 'yaml' 

Как я могу использовать RSpec, чтобы обеспечить proccess_args на самом деле не называется, а моделируется, чтобы избежать ARGV от взорвать мои тесты? Например, я хотел бы подделать вызов proccess_args (2), чтобы вернуть «Jason Wade», и избегать ARGV [opt] от когда-либо затронутого rspec.

+1

, показывающий вам специальный файл, поможет здесь много – jethroo

+0

Я включил тест –

ответ

0

allow(ARGV).to receive(:downcase).and_return('whatever')

Вы говорите RSpec к allowARGV к receive метод, называемый :downcaseand_return'whatever' вместо вызываете ее в коде испытывается. (Эта часть может быть не особенно полезной, но это объяснение, которое вызвало щелчок в моей голове.)

+0

Можете ли вы попробовать это, кажется, что это не работает, и не работает в proccess_args :( –

+0

Редактируйте исходное сообщение, чтобы добавить код для тестового файла. Строка, которую я опубликовал, является JUST самой заглушкой, а не тестом. – spectre6000

+0

Готово, я просто пытаюсь построить этот объект для записи тестов. –

 Смежные вопросы

  • Нет связанных вопросов^_^