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命令的参 ...
随机推荐
- C语言sizeof陷阱
执行以下程序,查看输出: #include <stdio.h> #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0])) int ...
- Android的消息处理机制,handler,message,looper(一)
当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件.在程序开发时,对于比较耗时的操作,通常会为其开辟一个单独的线程来执行,以尽可能减少用户的等待时间. ...
- Hibernate和JDBC、EJB比较
参考:http://m.blog.csdn.net/article/details?id=7228061 一.Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App S ...
- &&和||的那点事儿
以前一直以为&&和||的运算结果就是布尔值,但今天看到一段代码又填补的一些知识漏洞. var a = (1&&2&&5) || 3; console.l ...
- alter table <表名 > add constraint <主键名>用法
alter table <表名 > add constraint <主键名>用法介绍 1.主键约束: 要对一个列加主键约束的话,这列就必须要满足的条件就是分空 因为主键约束: ...
- 学习总结 java 数据库 ResultSet 、PreparedStatement
package com.hanqi.test; import java.sql.*; public class jdbcTest { public static void main(String[] ...
- form表单 无法提交js动态添加的表单元素问题。。
第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url ...
- 用Scrapy爬虫下载图片(豆瓣电影图片)
用Scrapy爬虫的安装和入门教程,这里有,这篇链接的博客也是我这篇博客的基础. 其实我完全可以直接在上面那篇博客中的代码中直接加入我要下载图片的部分代码的,但是由于上述博客中的代码已运行,已爬到快九 ...
- C++断言与静态断言
断言是很早之前就有的东西了,只需要引入cassert头文件即可使用.往往assert被用于检查不可能发生的行为,来确保开发者在调试阶段尽早发现“不可能”事件真的发生了,如果真的发生了,那么就表示代码的 ...
- (笔记)angular 的hover事件