Опитвам се да напиша някои тестове за код, който вече съм написал, с оглед на разширяване на моя код с помощта на разработка, управлявана от тестове.
Имам контролер, чието действие за индексиране извиква метод „user_info“, който просто събира заедно някои променливи на екземпляр, разчитайки на променливата current_user на Sorcery. Например:
def user_info
@current_A = current_user.a
@current_B = current_user.b
end
def index
user_info
// rest of the method goes here
end
Започнах да пиша някои тестове, използвайки rspec, само за да усетя как да тествам тази кодова база. Моята спецификация на контролера е много проста и изглежда така:
describe MyController do
describe "GET 'index'" do
get 'index'
response.should be_success
end
end
Получавам обаче следната грешка, когато се опитам да изпълня тази спецификация: NoMethodError: undefined method 'a' for false:FalseClass
Първо, как да накарам моята спецификация да разпознае метода на магьосничеството current_user? И, от любопитство, защо current_user е маркиран като екземпляр на FalseClass? Ако не извиква метода Sorcery (и не съм дефинирал current_user никъде другаде в моя код), не трябва ли да се показва като нула?