require './spec/spec_helper'
require './bank'
describe Bank do
context "#transfer" do
before(:all) do
@customer1 = Customer.new(500)
customer2 = Customer.new(0)
@customer1.stub(:my_money).and_return(1000)
customer2.stub(:my_money).and_return(0)
@transfer_message = Bank.new.transfer(@customer1, customer2, 2000)
end
it "should return insufficient balance if transferred amount is greater than balance" do
expect(@transfer_message).to eq("Insufficient funds")
end
it "calls my_money" do
expect(@customer1).to have_received(:my_money)
end
end
end
Когда я использую before(:each)
вместо before(:all)
это работает. Но если используется before(:all)
, он выдает ошибку как undefined method proxy_for for nil:NilClass
. Я не мог понять причину. Не могли бы вы мне помочь? Заранее спасибо.метод гася на ранее (: все)
Как я помню, 'before (: all)' лишен и заменен на 'before do ...' также более правильным способом, не использует переменные, вместо этого вы можете использовать 'let'. Если у вас есть nil: NilClass, это означает, что rspec не создавал запись клиента в базе данных (это может быть resolver, вызывая 'let! (: Object) {action}'). Что-то вроде этого. – itsnikolay