Rails 5 Test Prescriptions 第8章 Integration Testing with Capybara and Cucumber
Capybara: A complete reference is available atrubydoc.info.
集成测试就是把局部的程序组合起来测试。
端到端测试是一个特殊的集成测试,覆盖了系统的全部行为, end-to-end.
接受测试acceptance test是用来指定正确行为,从客户或商业想法出发。Acceptance tests 通常在代码开始之前就计划或者写了。
集成测试也使用Javascript driver来评测基于Javascript的模仿用户行动。
本章是无Js版本,下章是有Js版本。
- Setting up Capybara✅
- Using Feature Tests to bulid a Feature✅
- What to Test in an RSpec System test✅
- Outside-in Testing
- Making the Capybara Test Pass
- Retrospective回顾
- Setting up Cucumber ⚠️新的知识点,概览!!
- Writing Cucumber Features
- Writing Cucumber Steps
- Advanced Cucumber
- is Cucumber Worth it?
A Field Guide to Integration and System Tests
Rails core testing library defines two similar types of end-to-end test:
integration test:传统的Rails测试,使用自己的API,功能没Capybara强大。
system test:5.1新增的。需要使用Capybara 。也叫feature tests. 也可以叫integration test。
另外Request 测试,是指URL for routing的test input。也是integration的一种。(11章会学习 request specs.)
RSpec-rails团队,推荐使用Capybara在系统测试中,不论是否使用JavaScript。
Setting Up Capybara (API doucument)
使用自己的API来和元素交互,使用驱动来管理实际的交互。默认不提供Js 交互,但可以配置使用一个无头的浏览器,如headless Chrome让JS交互被模仿。
gem "capybara-screenshot"用来闪存测试失败 (800星)放在support/system.rb
Using Feature Tests to Build a Feature
Writing a test
Given: 一个project ,2个task.
When/then: 用户填写form,你确认新的task建立
When/then:用户移动一个task up向上(增加向上和向下的按钮,task的排列?),你确认顺序改变。
system/add_tasks_spec.rb
⚠️ RSpec有rspec:feature生成器。
# given 3 data
# when/then1:
# when/then2:
The Capybara API: Navigating
vist 对应 HTTP GET方法,
click_on(link/button)对应 HTTP POST方法
⚠️最好
Rails 5 Test Prescriptions 第8章 Integration Testing with Capybara and Cucumber的更多相关文章
- Rails 5 Test Prescriptions 第3章Test-Driven Rails
本章,你将扩大你的模型测试,测试整个Rails栈的逻辑(从请求到回复,使用端到端测试). 使用Capybara来帮助写end-to-end 测试. 好的测试风格,包括端到端测试,大量目标明确的单元测试 ...
- Rails 5 Test Prescriptions 第9章 Testing-JavaScript: Integration Testing,❌挂一个问题webpacker::helper
使用Capybara进行JS的集成测试 谈论驱动 让测试通过 Webpack in Development Mode Js设计 是用户在网页上有好的体验的重要因素. 尽管如此,许多网页不测试JS. 部 ...
- Rails 5 Test Prescriptions 第4章 什么制造了伟大的测试
伴随着程序成长,测试变长,复杂性增加,如何更高效的写测试,对以后开发不会造成麻烦. 测试本身没发被测试,所以一定要清楚,可控.不要加循环,不要过于复杂的自动编程. Cost and Value 成本和 ...
- Rails 5 Test Prescriptions 第11章其他部分的测试。
Routes✅ Helper Methods✅ Controllers and Requests✅ Simulating Requests⚠️,看之前的博客 What to Expect in a R ...
- Rails 5 Test Prescriptions 第5章 Testing Models
Rails,model层包含业务逻辑和储存逻辑.其中储存逻辑被ActiveRecord处理. 在model中,不是每件事都必须是ActiveRecord对象.model layer可以包含各种服务,对 ...
- Rails 5 Test Prescriptions 第10章 Testing for Security
Web 安全是一个可怕的主题.所有的你的程序都依靠密码学,代码超出了你的控制. 尽管如此,你还是可以控制部分网页安全 --所有的logins和access checks和injection error ...
- Rails 5 Test Prescriptions 第10章 Unit_Testing JavaScript(新工具,learn曲线太陡峭,pass)
对Js的单元测试是一个大的题目.作者认为Ruby的相关测试工具比Js的测试工具更灵活 大多数Js代码最终是关于响应用户的行为和改变DOM中的元素 没有什么javascript的知识点.前两节用了几个新 ...
- Rails 5 Test Prescriptions 第7章 double stub mock
https://relishapp.com/rspec/rspec-mocks/v/3-7/docs/basics/test-doubles 你有一个问题,如果想为程序添加一个信用卡程序用于自己挣钱. ...
- Rails 5 Test Prescriptions 第6章Adding Data to Tests
bcreate the data quickly and easily.考虑测试运行的速度. fixtures and factories.以及下章讨论的test doubles,还有原生的creat ...
随机推荐
- Visual Studio实用小技巧
有一个有关微软Office的笑话,说的是它的特性太多: 当你觉得自己发现了一个Office的新特性时,它已经存在很多年了. 本文将介绍一些在Visual Studio(免费下载)中很实用却被忽略的小技 ...
- Python+ Calibre 处理 中文报纸
import re ##2 line='<a href=nw.D110000renmrb_20180401_1-01.htm><script>document.write(vi ...
- Warm up---hdu4612(缩点,树的直径)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4612 给一个无向图, 加上一条边后,求桥最少有几个: 那我们加的那条边的两个顶点u,v:一定是u,v之 ...
- Python 读取写入配置文件 —— ConfigParser
Python 读取写入配置文件 —— ConfigParser Python 读取写入配置文件很方便,可使用内置的 configparser 模块:可查看源码,如博主本机地址: “C:/python2 ...
- EasyUI Droppable 可放置
通过 $.fn.droppable.defaults 重写默认的 defaults. 用法 通过标记创建可放置(droppable)区域. <div class="easyui-dro ...
- OpenStack功能简介
为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中间不够了也不能加,超了也不退钱 二 ...
- 数据挖掘-KNN-K最近邻算法
1. 算法核心思想: 通过计算每个训练样本到待分类样本的距离,选取和待分类样本的距离最近的 K 个训练样本,K个样本中那个类别的训练样本占据着多数, 则表明待分类的样本就属于哪一个类别. KNN算法在 ...
- VS2010/MFC编程入门之十七(对话框:文件对话框)
上一讲鸡啄米介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见 ...
- python学习之【16】网络编程
主题 客户端/服务器架构 套接字:通信终点 套接字地址 面向连接与无连接套接字 Python中的网络编程 SOCKET模块 套接字对象方法 TCP/IP客户端和服务器 UDP/IP客户端和服务器 So ...
- 【MDCC 2015】开源选型之Android三大图片缓存原理、特性对比
摘要:这是快的打车移动端架构师.Android 开源项目源码解析codeKK发起人 吴更新(@Trinea)在MDCC上分享的内容,从总体设计和原理上对几个图片缓存进行对比,没用到它们的朋友也可以了解 ...