Rspec 测试基础知识
来源:互联网 发布:淘宝开学季有什么优惠 编辑:程序博客网 时间:2024/06/07 06:42
Rspec 测试基础知识
阅读以下文档,你将了解:
- rpsec 测试是什么
- rspec 要点(快速上手rspec测试)
What is RSPEC
NOTE:
Rspec是一个行为驱动开发工具(Behaviour-Driven Development tool, BDD).
BDD是一种结合了Test-Driven Development, Domain Driven Design 和 Acceptance
Test-Driven Planning 的软件开发方式。Rspec帮助你做那种程式的TDD部分,关注
TDD的文档和设计方面。
NOTE:
原文:
RSpec is a Behaviour-Driven Development tool for Ruby programmers. BDD is an approach
to software development that combines Test-Driven Development, Domain Driven Design,
and Acceptance Test-Driven Planning. RSpec helps you do the TDD part of that equation,
focusing on the documentation and design aspects of TDD.
为什么要写测试
- 很容易让你发现一些低级错误和产生一些灵感.
比如,发现单词拼写错误、低级的逻辑错误、漏写了validates等,
或者发现某个方法有更加贴切的名字、找到某个方法更好的实现方式。
当你考虑测试覆盖是否全面的时候,其实也会提醒你方法实现的时候是否考虑到了所有情况和逻辑分支。 - 能增强代码可读性,让其他人更加轻松地读懂你的代码。
- 便于重构代码时,保证功能正确与逻辑不受影响。
The Point about RSPEC
describe, context, it
NOTE:
describe 用来表述独立的功能
context 用来表述独立功能下的一个场景let, let!区别
NOTE:
let 是延迟执行(lazy-evaluated),当第一次显示调用是才会执行;
let! 在每个用例执行前调用before
NOTE:
before 默认设置为before(:each);
before(:all)中对数据库的操作不在每个用例的事务中,每个用例执行后不会自动清理,需要在after(:all)中来清理数据expect
NOTE:
多用expect,而不是should
示例
let(:user){当用到user时,初始化user}before(:each) doenddescribe "#示例方法名" do context "某个场景下,所需要的条件" do it "返回的结果" do xxx.示例方法 except(XXX).to eq XXX end endend
rspec相关的文档:
- http://betterspecs.org/zh_cn/ (大家可以多看看每条建议在github上的讨论)
- http://zhongfox.github.io/blog/rails/2013/09/22/rspec-best-practice/
- https://www.relishapp.com/rspec/
- http://stackoverflow.com/questions/5359558/when-to-use-rspec-let
- http://blog.joshsoftware.com/2013/11/23/pro-tips-for-writing-better-rspec-tests/
- http://everydayrails.com/
- http://lmws.net/describe-vs-context-in-rspec
- Rspec 测试基础知识
- rspec 测试
- Rspec测试
- Rspec 测试
- RSpec测试
- rails rspec测试
- rspec测试出错
- ruby+rspec自动化测试
- 说说rspec测试的使用
- 怎样写rspec mailer测试
- RoR利用RSpec测试项目
- RSpec
- rspec
- RSpec
- rspec
- rails中写rspec测试代码
- 使用 RSpec 进行行为驱动测试
- 使用 RSpec 进行行为驱动测试
- 数据结构--读书笔记一
- poj Number Sequence
- mysql连表查询时遇到的问题
- gcc命令用法总结
- 欢迎使用CSDN-markdown编辑器
- Rspec 测试基础知识
- java 并发工具包 -信号量 Semaphore
- [ubuntu]fcitx内存占用过高问题解决
- JavaWeb基础(6)—— ServletContext 与 ServletConfig
- presto查询处理流程(queryexecution提交)
- Linux 环境开发工具
- 实现最小栈
- python学习—Day35—函数
- c语言1