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
。我找不到原因。请你帮助我好吗?提前致谢。
聚会迟到了?是的,但我不介意从我的发现中拿出我自己的一分钱。我在尝试存根请求时遇到了类似的错误RSpec.configure
块,以便存根仅可用于我传递的示例config.around(:each, option)
选项到.
所以,这意味着我在单个示例的范围之外使用了存根,这是不受支持的RSpec::Mocks
here https://relishapp.com/rspec/rspec-mocks/docs/basics/scope!.解决方法是在上下文中使用临时作用域。
所以你有了
before(:all) do
RSpec::Mocks.with_temporary_scope 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
end
HTH!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)