Ошибка RSPEC с классом Parser (?) - PullRequest
       0

Ошибка RSPEC с классом Parser (?)

0 голосов
/ 07 февраля 2012

Мне кажется, что я столкнулся с ошибкой в ​​ошибке RSPEC, просто пытаясь ее впервые ...

В следующем примере RSPEC чувствителен к имени класса : с ' Parser ' в файле parser.rb тест не пройден, но просто переименовав его в «FooParser», он заработает.

require_relative './parser.rb'
describe Parser do
    it 'should do the trick' do
       @parser = Parser.new "test.pas"
    end
end

будет жаловаться на мой аргумент конструктора, даже имеяпростой код, подобный следующему:

class Parser 
  def initialize arg
  end
end

Ошибочный журнал RSPEC выглядит следующим образом:

1) Parser should do the trick
    Failure/Error: @parser = Parser.new "test.pas"
       ArgumentError:
        wrong number of arguments(1 for 0)

1 Ответ

0 голосов
/ 07 февраля 2012

Спецификация, как написано в вашем вопросе, должна работать (и, кстати, ничего не добиваться), но я предполагаю, что в вашей реальной спецификации вы пытались использовать should с неявным субъектом, например:

it 'should do the trick' do
   @parser = Parser.new "test.pas"
   should_not be_nil
end

Если вы используете should или should_not голым, как это, Rspec должен выяснить, что вы тестируете.Он увидит, описываете ли вы класс - который вы есть - и попытаетесь создать его экземпляр - в вашем случае, используя Parser.new без аргументов.

Возможно, вы хотели что-то вроде этого:

it 'should do the trick' do
   Parser.new("test.pas").should_not be_nil
end

Это глупый тест, но, возможно, он иллюстрирует (что может быть) проблему.

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