Rspec笔记

  1. 当我们有这样的需求:一个或者更多的类 拥有同样的行为, 那么可以使用Rspec的 可分享的实例组(a shared example group). 关键词是
    shared_examples_for 和  it_should_behave_like
    [ruby]   view plain copy print ?
    1. shared_examples_for "Any Pizza" do  
    2. it "should taste really good" do  
    3. @pizza.should taste_really_good  
    4. end  
    5. it "should be available by the slice" do  
    6. @pizza.should be_available_by_the_slice  
    7. end  
    8. end  

    [ruby]   view plain copy print ?
    1. describe "New York style thin crust pizza" do  
    2. it_should_behave_like "Any Pizza"  
    3. before(:eachdo  
    4. @pizza = Pizza.new(:region => 'New York' , :style => 'thin crust' )  
    5. end  
    6. it "should have a really great sauce" do  
    7. @pizza.should have_a_really_great_sauce  
    8. end  
    9. end  


    或者使用 share_as
    [ruby]   view plain copy print ?
    1. share_as :AnyPizza do  
    2. ...  
    3. end  
    4. describe "New York style thin crust pizza" do  
    5. include AnyPizza  
    6. ...  
    7. end  

    或者直接使用 module ? 应该也可以

  2. 几种常见的断言
    [ruby]   view plain copy print ?
    1. lambda {  
    2. account.withdraw 75, :dollars  
    3. }.should raise_error(InsufficientFundsError)  

    [ruby]   view plain copy print ?
    1. lambda {  
    2. User.create!(:role => "admin" )  
    3. }.should change{ User.admins.count }.from(0).to(1)  


  3. 设置rspec rake 任务
    [ruby]   view plain copy print ?
    1. Spec::Rake::SpecTask.new do |t|  
    2. t.spec_opts = ["--color" ]  
    3. end  
    现在一般的做法是直接设置配置文件
    .rspec 
    [ruby]   view plain copy print ?
    1. --color  



  4. 一些基本的断言语句
    http://www.letrails.cn/archives/11-02-advanced-rspec-tutorials-basics/
    [ruby]   view plain copy print ?
    1. 下面是RSpec测试的一些基础语法,这些都是会运行通过的测试例:  
    2.   
    3. Strings:  
    4.   
    5. 'foo'.should == 'foo'  
    6. 'foo'.should === 'foo'  
    7. 'foo'.should_not equal('foo')  
    8. ''.should be_empty  
    9. 'foo with bar'.should include('with')  
    10. 'http://fr.ivolo.us'.should match(/http:\/\/.+/i)  
    11. nil.should be_nil  
    12.   
    13. Numbers:  
    14.   
    15. 100.should < 200  
    16. 200.should >= 100  
    17. (200 - 100).should == 100  
    18.   
    19. # (100 - 80) is less than 21  
    20. 100.should be_close(80,21)  
    21.   
    22. Arrays:  
    23.   
    24. [1,2,3].should have(3).items  
    25. [].should be_empty  
    26. [1,2,3].should include(2)  
    27.   
    28. Hashes:  
    29.   
    30. {}.should be_empty  
    31. {:post => {:title => 'test'}}.should have_key(:post)  
    32. {:post => {:title => 'test'}}.should_not have_key(:title)  
    33. false.should be_false  
    34. true.should be_true  
    35.   
    36. Records:  
    37.   
    38. # assuming @post = Post.new(:title => 'test')  
    39. @post.should be_instance_of(Post)  
    40. @post.should respond_to(:title)  

  5. BDD 几篇特别好的文章分析
    http://www.taobaotesting.com/blogs/qa?bid=11663
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值