关于利用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是方法级的。
待续
分享到:
相关推荐
《RSpec Book》是一本专注于Rspec的权威指南,它详细阐述了如何使用Rspec这个强大的测试框架进行行为驱动开发(BDD)。Rspec是Ruby编程语言中的一个测试库,它使得编写可读性强、表达力丰富的测试代码成为可能。这...
rspec_api_documentation, 从RSpec自动生成API文档 RSpec Doc为你的Rails API生成漂亮的。查看一个示例文件。更改请查看维基以了解最新的更改。安装将rspec_api_documentation添加到你的文件gem 'rspec_a
标题 "jruby-1.5.5+OperaWatir+RSpec" 暗示了这是一个关于使用 JRuby 1.5.5 版本、OperaWatir 和 RSpec 进行自动化测试的项目或者资源集合。现在,我们将深入探讨这三个关键组件以及它们在 IT 领域中的应用。 JRuby...
rspec 下载请注意:英文文档
rspec出入门者学习理解,介绍的非常的详细、清楚; 欢迎下载学习~
rspec-collection_matchers, 集合基数匹配器,从rspec期望中提取 RSpec::CollectionMatchers RSpec::CollectionMatchers 让你在一个例子中表达一个对象集合的预期结果。expect(account.shopping_cart).to have_
rspec-api-blueprint-formatter, 从RSpec测试自动生成API文档 ! RSpec APIBlueprint格式化程序从RSpec测试自动生成API文档 !像这样it 'retrievs the patients medications' do retrieve_medications
使用RSpec 测试Rails 程序.pdf
使用RSpec测试Rails程序。本书基于Rails 4.1,使用完整应用 来演示TDD的流程。
RSpec.Essentials 英文
ruby(rails)单元测试相关的gem,rspec、cucumeber。BDD
rspec 是目前bdd測試的使用工具,很適合描述測試的內容
Api-rspec_api_documentation.zip,从rspecrspec api doc generator自动生成api文档,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并将数据放弃到...
rspec_junit_formatter, RSpec结果格式化为你的CI可以读取的JUnit RSpec JUnit格式化程序 RSpec 2 & 3结果, Jenkins可以读取。 可能还有其他的CI服务。灵感来自于的工作,在的RSpec格式化程序在对 Reporter的失望...
RSpec和Minitest匹配器来预防N 1查询问题
db-query-matchers, 用于数据库查询的RSpec匹配器 db-query-matchers 用于数据库查询的RSpec匹配器。安装在你的应用程序中添加这一行,最好在你的test 组中:gem 'db-query-matchers'然后执行:bundle
rspec_demo Rspec演示
RSpec ::等待 等待RSpec中的条件 为什么RSpec :: Wait存在?... 但是, wait_for仍将接受一个块,因为它可能需要在等待时多次评估该块的内容。 describe Ticker do subject ( :ticker ) { Ticker
rspec_api_documentation - 从RSpec自动生成API文档