rspec的一些常见用法
这里讲了如何安装rspec,安装使用rspec。
下面介绍一下rspec中常见的使用方法。
下面是一个最简单的测试用例,判断true是不是等于true,should_be是旧的用法,新用法推荐使用expect()
it "is true when true" do
true.should be_true
end
#新用法
it "is true when true" do
expect(true).to be_true
end
一,测试models中的方法
1,测试实例方法
#spec/models/contact_spec.rb
def name
[firstname, lastname].join(' ')
end
#spec/models/contact_spec.rb
it "returns a contact's full name as a string" do
contact = Contact.new(firstname: 'John', lastname: 'Doe',
email: 'johndoe@example.com')
expect(contact.name).to eq 'John Doe'
end
测试相等时,RSpec 推荐使用 eq 而不是 ==。
2,测试类方法和作用域
#spec/models/contact_spec.rb
def self.by_letter(letter)
where("lastname LIKE ?", "#{letter}%").order(:lastname)
end
require 'spec_helper'
describe Contact do
# earlier validation examples omitted ...
it "returns a sorted array of results that match" do
smith = Contact.create(firstname: 'John', lastname: 'Smith',
email: 'jsmith@example.com'),
jones = Contact.create(firstname: 'Tim', lastname: 'Jones',
email: 'tjones@example.com'),
johnson = Contact.create(firstname: 'John', lastname: 'Johnson',
email: 'jjohnson@example.com')
expect(Contact.by_letter("J")).to eq [johnson, jones]
end
end
使用下面代码来检测返回值中是否没有包含联系人 smith
expect(Contact.by_letter("J")).to_not include smith
3,捕获异常
expect {
result = UI::ApplinkSqlBackup.get_sql_server_info(header, input)
}.to raise_error(Esfbase::EsfStandardError)
将可能发生异常的代码写在expect中,期待返回Esfbase::EsfStandardError类型的error
rspec的一些常见用法的更多相关文章
- Linux中find常见用法
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- php中的curl使用入门教程和常见用法实例
摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...
- Guava中Predicate的常见用法
Guava中Predicate的常见用法 1. Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...
- find常见用法
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- iOS 开发多线程篇—GCD的常见用法
iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...
- iOS开发多线程篇—GCD的常见用法
iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...
- [转]EasyUI——常见用法总结
原文链接: EasyUI——常见用法总结 1. 使用 data-options 来初始化属性. data-options是jQuery Easyui 最近两个版本才加上的一个特殊属性.通过这个属性,我 ...
- NSString常见用法总结
//====================NSStirng 的常见用法==================== -(void)testString { //创建格式化字符串:占位符(由一个%加一个字 ...
- [转]Linux中find常见用法示例
Linux中find常见用法示例[转]·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参 ...
随机推荐
- MSDN(电驴)
主站: http://msdn.itellyou.cn/ 辅站: http://msdn.ez58.net/
- 剑指Offer:面试题15——链表中倒数第k个结点(java实现)
问题描述 输入一个链表,输出该链表中倒数第k个结点.(尾结点是倒数第一个) 结点定义如下: public class ListNode { int val; ListNode next = null; ...
- 将本地仓库托管到GitHub
在初始化仓库之前,要确认ssh key是否正确 ssh -T git@github.com 正确的结果如下 Hi username! You've successfully authenticated ...
- Orchard官方文档翻译(十一) 使用Tags组织文本
原文地址:http://docs.orchardproject.net/Documentation/Organizing-content-with-tags 想要查看文档目录请用力点击这里 最近想要学 ...
- NopCommerce 3.80框架研究(一) 数据访问与持久化
NopCommerce 是一个国外的开源电商系统.3.80版本使用EF6.0 和.Net Framework 4.5.1 并引入了Autofac , Autofac是一款IOC框架,比较于其他的IOC ...
- 重拾qt
最近公司又接了一个煤矿的项目,要写个小程序摘取数据,我是公司唯一c++程序员,本来搞ios搞好好的,现在又得重拾半年没摸得qt了.呵呵...呵呵呵. 这里只记录这次小程序的一些小的总结吧.. 1.中文 ...
- Leetcode005 Longest Palindromic Substring
o(n)算法地址:http://blog.163.com/zhaohai_1988/blog/static/2095100852012716105847112/ /* pivot varies whe ...
- js跳转页面方法(转)
<span id="tiao">3</span><a href="javascript:countDown"></a& ...
- OpenGL函数解析之glMatrixMode(GLenum mode)
函数原型:void glMatrixMode(GLenum mode) 函数说明:glMatrixMode函数只有一个枚举类型的参数mode,用来指定哪一个矩阵堆栈式下一个矩阵操作的目标. mode有 ...
- JS常用的设计模式(12)—— 迭代器模式
迭代器模式提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该方法中的内部表示. js中我们经常会封装一个each函数用来实现迭代器. array的迭代器: forEach = functio ...