官术网_书友最值得收藏!

Technical assumptions

This book assumes that the reader is comfortable reading and writing Ruby code. Familiarity with RSpec is strongly recommended, though a total beginner to RSpec should find it possible to understand most of the recipes with the help of the online RSpec documentation. Each code example has been tested and works. I have used the latest stable versions available at the time of writing: Ruby 2.3.0 with RSpec 3.4.0.

RSpec 3 uses a different syntax from RSpec 2. Version 2.13 introduced a new syntax for assertions while 2.14 introduced a new syntax for doubles and expectations. RSpec 3.0 introduced a number of new features and changes as well. I have used the new syntax and features throughout the book:

require 'rspec'

describe 'new RSpec syntax' do
  it "uses the new assertion syntax" do
    # new                           # deprecated
    expect(1 + 1).to eq(2)          # (1 + 1).should == 2
  end

  context "mocks and expectations" do
    let(:obj) do
      # new                          # deprecated
      double('foo')                  # obj = mock('foo')      
    end
    
    it "uses the new allow syntax for mocks" do
      # new                          # deprecated
      allow(obj).to receive(:bar)    # obj.stub(:bar)
    end

    it "uses the new expect syntax for expectations" do
      # new                          # deprecated
      expect(obj).to receive(:baz)   # obj.should_receive(:baz)
      
      obj.baz
    end    
  end
end
主站蜘蛛池模板: 定结县| 海丰县| 防城港市| 黄大仙区| 郁南县| 诸城市| 五大连池市| 长泰县| 武安市| 正定县| 花垣县| 阿拉善右旗| 游戏| 泸溪县| 中卫市| 滕州市| 莎车县| 新干县| 元阳县| 股票| 贡山| 安阳县| 青海省| 辽宁省| 延川县| 赤壁市| 汉源县| 张家川| 双鸭山市| 文昌市| 西和县| 长海县| 仁布县| 措勤县| 彭州市| 思茅市| 徐汇区| 肇东市| 宁化县| 湘潭市| 全南县|