ruby rspec

听闻过TDD有一些时日了,加上之前看过的《敏捷开发的艺术》,是时候试着用这种方法来写一个程序。于是就谷歌到了ruby rspec,同是敏捷开发,但是却是BDD——行为驱动开发。

来自维基百科的简述

BDD的做法包括:

  • 确立不同利益相关者要实现的远景目标
  • 使用特性注入方法绘制出达到这些目标所需要的特性
  • 通过由外及内的软件开发方法,把涉及到的利益相关者融入到实现的过程中
  • 使用例子来描述应用程序的行为或代码的每个单元
  • 通过自动运行这些例子,提供快速反馈,进行回归测试
  • 使用“应当(should)”来描述软件的行为,以帮助阐明代码的职责,以及回答对该软件的功能性的质疑
  • 使用“确保(ensure)”来描述软件的职责,以把代码本身的效用与其他单元(element)代码带来的边际效用中区分出来。
  • 使用mock作为还未编写的相关代码模块的替身

手头上的工具及书籍包含以下(转载保留 Phodal's Blog Phodal's  zenthink

  1. 《Ruby元编程》
  2. 《Programming Ruby》
  3. 《重构:改善既有代码的设计》
  4. Mint Linux以及OpenSUSE Linux
  5. 《测试驱动开发的艺术》

Ruby Rspec

官方的介绍如下

RSpec is testing tool for the Ruby programming language. Born under the banner of Behaviour-Driven Development, it is designed to make Test-Driven Development a productive and enjoyable experience with features like:

  • a rich command line program (the rspec command)
  • textual descriptions of examples and groups (rspec-core)
  • flexible and customizable reporting
  • extensible expectation language (rspec-expectations)
  • built-in mocking/stubbing framework (rspec-mocks)
简单的翻译一下就是
RSpec是Ruby编程语言的测试工具。在行为驱动开发的旗帜下诞生的,它的目的是使测试驱动开发一个富有成效和愉快的体验与功能,如:
  • 丰富的命令行程序(the rspec command)
  • 实例和组文字说明(rspec-core)
  • 灵活和可定制的报告
  • 可扩展的期望语言(rspec-expecation)
  • 内置mocking/stubbing框架(rspec-mocks)
安装,理论上是可以直接用
[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. sudo apt-get install ruby-rspec  

实际上我觉得还是用
[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. gem install rspec  

因为直接用Mint Linux上面的命令带来另外两个版本的ruby,最后在安装rails的时候,问题终于爆发了。

Ruby Rspec BDD

这部分参考了这里的文章

使用 RSpec 进行行为驱动测试

这里讲到的思想和TDD很像,也就是不断地通过测试。

添加任务到Rakefile
[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. require 'rspec/core/rake_task'  
  2. task :default => :spec  
  3.   
  4. desc "run all examples."  
  5. RSpec::Core::RakeTask.new(:spec)  

创建目录spec

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. mkdir spec  
[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. gedit spec/spec_helper.rb  

用来集中使用到的库

添加一个简单的类的测试

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. require 'spec_helper'  
  2.   
  3. describe Hotel do  
  4.   let(:hotel){Hotel.new("Photel",3,110)}  
  5.   
  6.   it "should return countcost  of  final" do  
  7.     hotel.name.should be_a String  
  8.   end  
  9.      
  10. end  

创建一个简单的类来通过测试

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. class Hotel  
  2.     def initialize(name,rating,price)  
  3.         @name=name  
  4.         @rating=rating  
  5.         @price=price  
  6.    end  
  7. end  

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. rake  

这样的迭代过程用来开发程序算是一件不错的事。

Ruby Rake有感

这个算是我觉得Ruby比python 强大的另外一个吧,还有一个是OO的出神入化。
不过用makefile的话,也是不错的,对于python来说。
至于Ruby还是Rake,不过Rake也可以用于其他场合的构建。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
脚本语言包括Python、JavaScript、Ruby、Perl、PHP、Lua、Shell等。 理论上,脚本语言具有解释执行、动态类型、自动内存管理等特点。实际上,脚本语言常用于快速开发、自动化任务、Web开发、数据处理等领域。 以下是20个脚本语言的使用案例: 1. Python编写爬虫程序,自动抓取网页内容 2. JavaScript编写网页交互特效、动画效果 3. Ruby编写Web应用程序,如Ruby on Rails框架 4. Perl编写文本处理程序,如正则表达式工具 5. PHP编写动态网页,如WordPress、Drupal等CMS系统 6. Lua编写游戏脚本,如World of Warcraft、Minecraft等游戏 7. Shell编写系统管理脚本,如自动化部署、备份脚本等 8. Python编写机器学习程序,如TensorFlow、PyTorch等框架 9. JavaScript编写前端框架,如React、AngularJS等 10. Ruby编写测试框架,如RSpec、Cucumber等 11. Perl编写网络编程程序,如CGI、FastCGI等 12. PHP编写电子商务网站,如Magento、PrestaShop等 13. Lua编写嵌入式系统程序,如OpenWrt路由器系统 14. Shell编写自动化测试脚本,如Selenium、Robot Framework等 15. Python编写数据分析程序,如Pandas、NumPy等库 16. JavaScript编写移动应用程序,如React Native、Ionic等 17. Ruby编写系统脚本,如Capistrano、Chef等 18. Perl编写数据库程序,如DBI、DBD等 19. PHP编写社交网络网站,如Facebook、Twitter等 20. Lua编写AI程序,如Torch等库。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值