`
liuqiang
  • 浏览: 162680 次
  • 性别: Icon_minigender_1
  • 来自: 华东
社区版块
存档分类
最新评论

rspec实践一(从零开始)

    博客分类:
  • Ruby
阅读更多

关于利用rspec的文章感觉蛮少的,准备写一个简洁的rspec 实践心得,从零开始,一步步深入探索

 

顺便说几句关于BDD的看法,感觉这种开发方式还是很靠谱的,个人认为传统的TDD开发太乏味,让人感觉在浪费时间,而且,TDD开发出的东西,虽然功能上可以保证正确性,但站在产品的角度上,结果往往与客户的期望相去甚远,二者最大的不同是,BDD的目的是不仅仅在于检验结果的正确性,还有就是让测试用例描述需求成为可能,这样的话,写测试用例的过程可以让程序员逐步的了解需求,也就是明白自己到底需要做出什么样的产品

 

gem install rspec

gem install rspec-rails

 

 

rspec-rails是rspec的rails扩展库,作用无非是简化生成测试骨架以及运行测试用例

 

控制器

ruby script/generate rspec_controller dog bark fetch

后面跟的是试图文件的名字

 

模型

ruby script/generate rspec_model User

 

自动生成的代码如下

 

require 'spec_helper'

describe User do
  before(:each) do
    @valid_attributes = {
      :username => "sharp"
    }
  end

  it "should create a new instance given valid attributes" do
    User.create!(@valid_attributes)
  end
end
 

需要说明的是describe方法生成了Spec::Example::ExampleGroup的一个子类,it方法生成了should_×××××的方法,也就是describe方法生成了一个样例组,而通过it生成了一个个都样例。

 

Spec::Mock

在一个系统中,会有很多对象代理其他的对象,那么在测试这个对象的时候,如果它所需要代理的对象还没有开发出来,那么就需要模拟一些它所代理的对象。

Method stubs 和 messsage expectations 是方法级的概念,而 test doubles 或者 test-specific extensions则是对象级的概念。

test double是一种在样例中可以代表其他对象的对象,根据它的用法,类似于mocks, stubs, fakes  ,imposters等等,需要注意的是mock是对象级,而stub是方法级的。

 

 

 

待续

 

 

 

分享到:
评论

相关推荐

    from-zero-to-hero-with-RSpec

    本文将带你从零开始,深入了解如何使用 RSpec 实践 TDD,成为一位熟练的 RSpec 用户。以下我们将详细探讨 RSpec 的核心概念、安装步骤、基本用法以及如何逐步构建一个 TDD 项目。 1. **安装 RSpec** 在开始之前,...

    Ruby-开箱即用的Rails项目模板

    标题中的"Ruby-开箱即用的Rails项目模板"指的是一个预先配置好的Rails项目结构,它包含了特定的设置和集成,以便开发者能够快速启动新项目,无需从零开始配置各种依赖和工具。这种模板通常会包含最佳实践和常用库,...

    Ruby_on_Rails快速Web应用开发实战

    总的来说,“Ruby on Rails快速Web应用开发实战”将涵盖如何利用RoR的特性和最佳实践,从零开始创建一个功能完善的Web应用。学习者将深入理解MVC架构,掌握路由配置、数据库设计、视图渲染、测试驱动开发以及如何...

    RubyOnRails的一个入门小例子

    在这个例子中,我们可以推测作者可能会介绍如何从零开始搭建一个Rails项目,包括安装Rails环境、创建新的Rails应用、设置数据库、定义路由、创建模型、控制器以及视图,并可能涉及CRUD(Create, Read, Update, ...

    Rails相关电子书汇总二

    10. **实战案例**:可能会包含实际的Rails项目实例,展示如何从零开始构建一个完整的Web应用。 通过阅读这本书,开发者不仅可以深化对Ruby和Rails的理解,还能学习如何利用Ruby进行更高效的系统管理,提升其在运维...

    Rails 4 in Action, Second Edition.pdf

    - **电子商务网站开发**:从零开始构建一个完整的电子商务平台,涵盖商品管理、订单处理等功能。 - **社交网络应用**:设计并实现一个社交网络应用,包含用户注册、好友添加、消息发送等功能。 - **博客系统**:创建...

    脚手架方案-开阳里.zip

    在IT行业中,"脚手架"一词常用于软件开发领域,特别是在Web开发中,它是一种工具或框架,能够快速搭建应用的基础结构,以便开发者可以专注于编写核心业务逻辑,而无需从零开始创建整个项目结构。"开阳里"可能是这个...

    ruby实用函数和实例

    这些Gem让开发者能够快速构建各种类型的项目,而无需从零开始。 总之,Ruby的实用函数和实例涵盖了从基础的文件操作到复杂的网络数据采集,再到面向对象编程和自动化测试的各个方面。通过学习和实践,我们可以利用...

    Ruby-ROREcommerceRubyonRails电子商务平台

    对于小型企业来说,这样的平台能够快速搭建并进行定制,而无需从零开始编写所有代码。 描述中提到的"ROR Ecommerce"是这个项目的简称,强调了它是用Ruby on Rails开发的电商系统。这表明它利用了RoR的强大功能,如...

    Ruby语言中文教程

    Ruby是一种面向对象的脚本语言,它以其...通过这个中文教程,你将能够从零开始,逐步掌握Ruby语言的各个方面,无论是基础语法还是高级特性,都能得到详尽的解释和实例演示。不断实践,你将成为一名熟练的Ruby开发者。

    rails magazine issue 3

    这包括从零开始设置 Rails 环境,定义数据模型,创建数据库表结构,实现用户界面,以及添加必要的功能如代码片段的存储、检索和编辑。通过此教程,读者可以学习到 Rails 基础架构的搭建,以及如何利用 Rails 的内置...

    Ruby_for_Rails.pdf

    - **需求分析**:从零开始规划一个完整的Rails应用,包括需求收集、设计文档编写等前期工作。 - **代码实现**:按照第二部分和第三部分的知识点,逐步实现项目的各个功能模块。 - **部署上线**:介绍如何将应用部署...

    learn-rails:我的第一个Rails应用程序!

    总的来说,“learn-rails”教程是一个全面的学习资源,它涵盖了从零开始构建Rails应用的各个方面,包括基础概念、文件结构、数据库操作、前端技术以及部署策略。通过实践这个教程,你将对Rails有深入的理解,并具备...

    第一应用程序轨道

    "第一应用程序轨道"通常指的是初学者在学习编程或者特定技术栈时所遵循的教程或项目路径,这通常是为了建立...通过实践这个项目,你可以从零开始构建一个功能完备的应用,并在这个过程中掌握关键的编程和Web开发知识。

    curso-rails-5x:Ruby on Rails 5.x 课程 - 从开始到结束!

    《Ruby on Rails 5.x 全面教程:从零开始到精通》 在这个详尽的教程中,我们将深入探讨Ruby on Rails 5.x这一强大的Web开发框架。Ruby on Rails(简称Rails)以其“约定优于配置”(Convention over Configuration...

    alpha-blog:Udemy课程第一个Rails应用程序

    在这个课程中,学员会逐步学习如何从零开始搭建一个功能完备的Web应用。"firt alpha-blog应用程序"暗示了这是一个早期版本,可能随着课程的深入,会有更多的功能和优化被添加进来。通过完成这样的练习,学生可以掌握...

    conductor:售票员

    关于《Rails 4 in Action》这本书,作者们通过构建一个售票员(Conductor)应用,逐步讲解了如何从零开始搭建一个完整的Web应用。这包括了设置环境、创建模型、控制器和视图、处理路由、用户认证与授权、数据库迁移...

    test_app:学习

    这门课程可能是为了教授学员如何从零开始构建完整的Web应用,通过实际操作来理解Rails框架的工作原理和最佳实践。 标签“Ruby”指出了这个项目的核心编程语言——Ruby,这是一种动态、面向对象的脚本语言,特别适合...

    learn-rails:学习 Rails 图书应用

    通过《学习Rails:构建图书应用》教程,你将全面了解Rails开发流程,从零开始构建一个功能完备的Web应用。这个过程不仅涵盖了Rails的核心概念,还涉及到了前端开发、数据库管理、测试和部署等多个方面,是成长为一名...

    rails-sample-blog:一个简单的跟踪Rails官方指南的博客教程

    通过跟随这个教程,你可以了解到如何从零开始构建一个完整的Web应用,包括用户登录、文章创建、编辑和删除等功能。 在Rails官方指南中,你将学习到以下关键知识点: 1. **Rails安装**:首先,你需要了解如何在本地...

Global site tag (gtag.js) - Google Analytics