1
Не уверен, что мой синтаксис прав, он, похоже, не распознает заглушку, которую я передал моему двойнику.Rspec double return NoMethodError
class Robot
def boogie friend
friend.dances
end
end
Тест:
describe Robot do
let(:robo_friend){double(:friend, {dances: true})}
it "should have a friend dance too" do
expect(subject.boogie :robo_friend).to be true
end
end
И ошибка:
Robot should have a friend dance too
Failure/Error: expect(subject.boogie :robo_friend).to be true
NoMethodError:
undefined method `dances' for :robo_friend:Symbol
# ./lib/robot.rb:3:in `boogie'
# ./spec/robot_spec.rb:8:in `block (2 levels) in <top (required)>'
Может кто-нибудь увидеть, что я делаю неправильно?
'позволяют (robo_friend) .чтобы получить (: танцы) .and_return (истина)' https://www.relishapp.com/rspec/rspec-mocks/v/3-3/docs/configuring- response/return-a-value – bjhaid
Мне нужно использовать его вне блока 'it', поэтому его можно использовать для нескольких других тестов. Я думаю, пусть это правильный способ сделать это, но не может заставить его работать. – blankanchor
изменить 'ожидать (subject.boogie: robo_friend). Быть истинным' to 'ожидать (subject.boogie robo_friend). Быть истинным' 'robo_friend' вводится в ваш let как метод, поэтому вы не должны использовать символ https://www.relishapp.com/rspec/rspec-core/v/2-5/docs/helper-methods/let-and-let – bjhaid