2013-11-13 3 views
-1

Я довольно новый для Ruby, и совершенно новых для Rspec и пытаюсь сделать следующий Rspec кода проход:Rspec: неверное число аргументов

require "#{File.dirname(__FILE__)}/fish" 

describe fish do 

    before do 
    @fish = fish.new(3) 
    end 

    it "should report the number of fish" do 
    @fish.number.should equal 3 
    end 
end 

Я пытаюсь проверить следующий код, который я м уверен, что это неправильно по целому ряду причин, но сейчас я просто пытаюсь получить мимо «неверное число аргументов (1 для 0)» ошибка ":

class fish 
    def intialize n 
    @number = n 
    end 
end 

ответ

1

Вы буквам initialize неправильно в вашем классе определение (пропущено i после n.)

Поэтому ваш класс по-прежнему имеет конструктор по умолчанию, поскольку вы его не переопределили. Конструктор по умолчанию не принимает аргументов, поэтому жалуется при попытке пройти 3.

+0

Omg спасибо! Какая глупая ошибка для меня сделать>< – trosborn

+0

@aserty Вы также должны были получить ошибку от имени класса, которое не было заглавным. Вы не получили сообщение об ошибке? –

+0

Когда я пошел исправлять форматирование в stackoverflow, я удалил капитал F и случайно заменил его строчным f, но спасибо за вашу озабоченность :) – trosborn

1

Пару вещей, которые я замечаю сразу же ...

  1. Я рекомендую использовать круглые скобки, пока вы не привыкнете к синтаксису Руби.

  2. Вы ошибочно написали initialize в своем классе.

  3. Инициализировать Fish (и класс Fish, для этого) с капиталом F.


describe fish do 
    before do 
    @fish = Fish.new(3) 
    end 

    it "should report the number of fish" do 
    @fish.number.should equal(3) 
    end 
end 


class Fish 
    def intialize n 
    @number = n 
    end 
end 
Смежные вопросы