Rspec 和 flexmock

[url]http://wiki.github.com/dchelimsky/rspec/configgem-for-rails[/url]
[url]http://swachian.iteye.com/blog/163202[/url]
[url]http://rspec.info/documentation/[/url]
[url]http://hideto.iteye.com/blog/126583[/url]
[url]http://github.com/jimweirich/flexmock/tree/master[/url]
[url]http://flexmock.rubyforge.org/[/url]

require 'flexmock/test_unit'
require 'spec'

Spec::Runner.configure do |config|
config.mock_with :flexmock
end

describe "Using FlexMock with RSpec" do
it "should be able to create a mock" do
m = flexmock(:foo => :bar)
m.foo.should === :bar
end
end


require 'machine'

describe Machine do
before :each do
@machine = Machine.new
end

it "should initially have a state of :initial" do
@machine.state.should == :initial
end

end


describe Account do
context "transfering money" do
it "deposits transfer amount to the other account" do
source = Account.new(50, :USD)
target = mock('target account')
target.should_receive(:deposit).with(Money.new(5, :USD))
source.transfer(5, :USD).to(target)
end

it "reduces its balance by the transfer amount" do
source = Account.new(50, :USD)
target = stub('target account')
source.transfer(5, :USD).to(target)
source.balance.should == Money.new(45, :USD)
end
end
end

$ spec spec/account_spec.rb --format nested
Account
transfering money
deposits transfer amount to the other account
reduces its balance by the transfer amount



Scenario: stub in before
Given the following spec:
"""
describe "a stub in before" do
before(:each) do
@messenger = mock('messenger').as_null_object
end

it "a" do
@messenger.should_receive(:foo).with('first')
@messenger.foo('second')
@messenger.foo('third')
end
end
"""
When I run it with the spec command --format nested
Then the stdout should match "expected :foo with (\"first\") but received it with ([\"second\"], [\"third\"])"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值