`
810364804
  • 浏览: 807784 次
文章分类
社区版块
存档分类
最新评论

一个python程序员的ruby三日游(二)——第一天 ruby rspec

 
阅读更多

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

来自维基百科的简述

BDD的做法包括:

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

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

  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)
安装,理论上是可以直接用
sudo apt-get install ruby-rspec

实际上我觉得还是用
gem install rspec

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

Ruby Rspec BDD

这部分参考了这里的文章

使用 RSpec 进行行为驱动测试

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

添加任务到Rakefile
require 'rspec/core/rake_task'
task :default => :spec

desc "run all examples."
RSpec::Core::RakeTask.new(:spec)

创建目录spec

mkdir spec
gedit spec/spec_helper.rb

用来集中使用到的库

添加一个简单的类的测试

require 'spec_helper'

describe Hotel do
  let(:hotel){Hotel.new("Photel",3,110)}

  it "should return countcost  of  final" do
    hotel.name.should be_a String
  end
   
end

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

class Hotel
    def initialize(name,rating,price)
        @name=name
        @rating=rating
        @price=price
   end
end

rake

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

Ruby Rake有感

这个算是我觉得Ruby比python 强大的另外一个吧,还有一个是OO的出神入化。
不过用makefile的话,也是不错的,对于python来说。
至于Ruby还是Rake,不过Rake也可以用于其他场合的构建。

分享到:
评论

相关推荐

    [转] ruby学习一个综合小练习

    标题中的“ruby学习一个综合小练习”表明这是一个关于Ruby编程语言的学习资源,可能是通过一个实际的小项目或练习来帮助学习者提升对Ruby的理解。描述中提到的“博文链接”指向了一个特定的博客文章,虽然没有给出...

    Ruby-RSpec和Minitest匹配器来预防N1查询问题

    在Ruby的Web开发中,数据访问层经常遇到一个性能瓶颈问题,那就是著名的“N+1查询问题”。当我们在处理数据库查询时,如果没有正确地优化,可能会导致大量的额外查询,这会严重影响应用程序的性能。Ruby提供了两种...

    ruby测试代码1

    例如,读取一个DOC文件可能需要第三方库如`docx`,而LPS文件可能是一种特定的游戏脚本格式,需要特定的解析器。 总的来说,"ruby测试代码1"涉及的是使用Ruby进行测试实践,可能涵盖了MiniTest或RSpec的基本用法。...

    programming+ruby中文版第二版

    《Programming Ruby中文版第二版》是一本专注于Ruby编程语言的权威指南,对于想要深入学习和理解Ruby编程的读者来说,是一本不可多得的资源。Ruby作为一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元...

    rspec测试.pdf

    RSpec作为Ruby社区中最流行的测试框架之一,不仅因其强大的功能和灵活性而受到欢迎,更重要的是,它推动了一种更为健康和有效的软件开发文化——通过清晰的行为描述来驱动开发,确保软件的质量和可维护性。...

    Ruby-一个Ruby的例子

    Ruby有一个庞大的生态系统,包括许多著名的框架和库,如Web开发的Rails、自动化任务的Rake、测试工具RSpec等。即使是在“其它杂项”中,也有许多值得关注的工具,如用于处理文件系统的`File`和`Dir`类,或者用于处理...

    Best of Ruby Quiz

    这本书的描述简洁明了,"Best of Ruby Quiz"直接点出了其核心内容——一系列关于Ruby的精彩挑战和问题解答,旨在提升编程技能。 Ruby是一种面向对象的、动态类型的编程语言,由日本的松本行弘(Yukihiro Matsumoto...

    程序员为什么还要刷题-rspec:[Ruby,tdd,rspec]

    程序员常刷题规格 学习目标 ...然后你添加第三个功能并测试...只是第三个功能。 想象一下,如果您有一组针对您的代码运行的自动化规范,那么您可以查看您的新更改是否符合您的新需求以及在此之前出现的每

    jruby-1.5.5+OperaWatir+RSpec

    现在,我们将深入探讨这三个关键组件以及它们在 IT 领域中的应用。 JRuby 是 Java 虚拟机(JVM)上的一个 Ruby 实现,它允许 Ruby 代码在 Java 平台上运行,并能够利用 Java 类库。JRuby 1.5.5 是该实现的一个早期...

    the rspec book.pdf

    Rspec是Ruby编程语言中的一个测试库,它使得编写可读性强、表达力丰富的测试代码成为可能。这本书不仅涵盖了Rspec的基本用法,还深入探讨了高级特性和最佳实践,旨在帮助开发者实现更高效、更有信心的软件开发。 ...

    Ruby-EmojiRSpec用于RSpec的自定义Emoji格式化程序

    Ruby-EmojiRSpec是一款专为RSpec设计的自定义格式化程序,它将测试结果以表情符号(Emoji)的形式展示,使得测试输出更加直观和有趣。在Ruby开发过程中,测试是保证代码质量的重要环节,RSpec作为一款强大的行为驱动...

    《Ruby Programming—向Ruby之父学程序设计(第2版)》电子书

    此外,书中可能会讲解Ruby on Rails,这是一个基于Ruby的流行Web开发框架,它遵循“约定优于配置”的原则,大大简化了Web应用的开发过程。Rails提供了MVC(模型-视图-控制器)架构,以及诸如ActiveRecord(ORM)和...

    rspec 入门者学习

    RSpec 是一个流行的 Ruby 测试框架,主要用于行为驱动开发 (Behavior-Driven Development, BDD)。RSpec 的设计目的是让测试更加自然和易读,使得开发人员能够更好地理解和编写测试用例。 #### 二、RSpec 与 BDD **...

    Ruby-rspecapidocumentation从RSpec自动生成API文档

    Ruby-rspec_api_documentation是一个强大的工具,专门用于从RSpec测试用例中自动生成API文档。在Ruby开发过程中,良好的文档是至关重要的,它可以帮助开发者理解代码的功能和使用方式,提高团队协作效率。RSpec是一...

    The Ruby Programming Language

    ### Ruby编程语言——基础知识与应用 #### 一、Ruby简介 《The Ruby Programming Language》是一本详细介绍Ruby语言的权威书籍,由Ruby之父Yukihiro Matsumoto(松本行弘)与著名技术作家David Flanagan共同撰写。...

    Ruby编程Ruby Programming

    根据提供的文件信息,我们将深入探讨与“Ruby编程Ruby Programming”这一主题相关的几个核心知识点。这本面向初学者和高级读者的指南旨在全面介绍Ruby编程语言的基础及其高级特性,因此我们将从多个角度来解析这些...

    Programming Ruby.pdf

    此外,该书还涵盖了Ruby生态系统中的各种工具和库,如Rake、RSpec等,这些工具极大地丰富了Ruby的开发环境,使得Ruby成为了一种既强大又灵活的编程语言。 ### 核心知识点五:社区与资源 Ruby拥有一个活跃且热情的...

    ruby测试代码7

    "Ruby测试代码7"可能指的是一个特定的测试用例或测试框架在Ruby中的应用。在这个场景下,我们将深入探讨Ruby中的测试实践,包括测试工具、测试方法以及如何通过Map和Sound等模块进行测试。 首先,Ruby中的测试文化...

    Ruby及开发工具(一个script的程序语言)

    通过RubyGems,开发者可以轻松地将第三方库引入项目,极大地扩展了Ruby的功能。RubyGems包含了大量的开源库,如Web框架Rails、测试工具Rspec、自动化工具Capistrano等,这些库覆盖了从Web开发到系统管理的各个领域。...

    《Programming Ruby》中文第2版源代碼下載

    《Programming Ruby》是一本经典的Ruby编程语言教程,中文第二版为中国的程序员提供了深入学习Ruby的宝贵资源。这本书的源代码下载对于读者来说是极其有用的,因为它允许读者在实践中探索和理解书中所阐述的概念。...

Global site tag (gtag.js) - Google Analytics