请求测试

render_template:

expect(response).to render_template("new")

redirect_to

expect(response).to redirect_to(widgets_path)

请求测试,功能测试:

have_http_status (:error/:missing/:redirect/:success)

在功能测试:

expect(page).to have_http_status(:success)

在请求测试:

expect(response).to have_http_status(201)
expect(response).not_to have_http_status(:created)


Model Specs描述模型的行为,一般基于数据库。

Request Spec

主要是:给了一个request,HTTP的响应response。 也可以叫integration。

请求测试一般在spec/requests, spec/api, spec/integration目录,标志:type => :require

请求测试混入了Rails集成测试的模块Runner中的行为。

很多开发者喜欢FactoryBot/Capybara一起用在请求测试。

require 'rails_helper'

RSpec.describe "home page", :type => :request do
it "displays the user's username after successful login" do
user = FactoryBot.create(:user, :username => "jdoe", :password => "secret")
visit "/login"
fill_in "Username", :with => "jdoe"
fill_in "Password", :with => "secret"
click_button "Log in" expect(page).to have_selector(".header .username", :text => "jdoe")
end
end

因此没有使用get "/login"这种HTTP verb加路径url的定位.

Feature Specs从外部模仿浏览器。如果使用Capybara,请求测试和功能测试,集成测试都差不多。

rspec-rails中的一些匹配器只有在特定的类型才能使用。的更多相关文章

  1. Hamcrest匹配器框架

    其实在之前的文章中已经使用过 Hamcrest 匹配器框架,本篇文章将系统的介绍它的使用. 为什么要用Hamcrest匹配器框架 Hamcrest是一款软件测试框架, 可以通过现有的匹配器类检查代码中 ...

  2. Rspec: everyday-rspec实操。FactoryBot预构件 (rspec-expectations gem 查看匹配器) 1-4章

    总文档连接: RSpec.info/documentation/ 包括core, expectiation,rails , mock, 点击最新版本,然后右上角搜索class, method. 第3章 ...

  3. Rails中rspec测试xxx_path调用失败的解决

    首先要想生成类似于home_path,about_path之类的方法,必须在路由文件中添加对应方法: match '/help',to:"static_pages#help",vi ...

  4. Junit 断言 assertThat Hamcrest匹配器

    junit断言总结本文参考了http://blog.csdn.net/wangpeng047/article/details/9628449一 junit断言1.JUnit框架用一组assert方法封 ...

  5. EassyMock实践 自定义参数匹配器

    虽然easymock中提供了大量的方法来进行参数匹配,但是对于一些特殊场合比如参数是复杂对象而又不能简单的通过equals()方法来比较,这些现有的参数匹配器就无能为力了.easymock为此提供了I ...

  6. 前端测试框架Jest系列教程 -- Matchers(匹配器)

    写在前面: 匹配器(Matchers)是Jest中非常重要的一个概念,它可以提供很多种方式来让你去验证你所测试的返回值,本文重点介绍几种常用的Matcher,其他的可以通过官网api文档查看. 常用的 ...

  7. Flask入门之自定义过滤器(匹配器)

    1.  动态路由的匹配器? 不知道这种叫啥名,啥用法,暂且叫做匹配器吧. Flask自带的匹配器可以说有四种吧(保守数字,就我学到的) 动态路由本身,可以传任何参数字符串或者数字,如:<user ...

  8. 【Jest】笔记二:Matchers匹配器

    一.前言 什么是匹配器? 我们可以把匹配器看成,testng断言,这么理解就可以了 二.常用的匹配器 test('two plus two is four', () => { expect(2 ...

  9. uva11019矩阵匹配器D316

    #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #inclu ...

随机推荐

  1. postgresql----时间类型

    postgresql支持的时间类型如下图所示: 日期 date: 建议日期的输入格式为1997-01-01,虽然也支持19970101,1/1/1997,Jan-1-1997等多种格式. 时间戳 ti ...

  2. 用Squid实现反向代理

    Last-Modified: 告诉反向代理页面什么时间被修改 Expires: 告诉反向代理页面什么时间应该从缓冲区中删除 Cache-Control: 告诉反向代理页面是否应该被缓冲 Pragma: ...

  3. Andrew Ng机器学习公开课笔记 -- 朴素贝叶斯算法

    网易公开课,第5,6课 notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf 前面讨论了高斯判别分析,是一种生成学习算法,其中x是连续值 这里要 ...

  4. 点击劫持漏洞解决( Clickjacking: X-Frame-Options header missing)

    点击劫持漏洞 X-Frame-Options HTTP 响应头, 可以指示浏览器是否应该加载一个 iframe 中的页面. 网站可以通过设置 X-Frame-Options 阻止站点内的页面被其他页面 ...

  5. Spring boot maven 搭建框架

    Spring Boot:目的:这个框架帮助开发者更容易地创建基于Spring的应用程序和服务,使得pring开发者能够最快速地获得所需要的Spring功能.优点:完全不需要XML配置,让spring应 ...

  6. 提高myEclipse的开发效率和外观,这些你都设置了吗?

    [前言] 为什么我的myeclipse开启速度那么慢,为什么别人能哗啦啦几个快捷键打出一片代码?刚开始使用myeclipse的时候,相信大家都有这个疑问,慢慢的,也懂得一些配置,我也不例外,在此,把常 ...

  7. js-template-art【二】语法

    参看地址 一.模板语法 1.变量使用与输出 <% if (user) { %> <h2><%= user.name %></h2> <% } %& ...

  8. windoes下一台电脑是无线/USB上网,如何将另一台电脑通过一拖一上网

    https://wenku.baidu.com/view/0c95830bbb68a98271fefa6e.html 一台电脑是无线上网,如何将另一台电脑通过一拖一上网有时候,在没有路由器的情况下,只 ...

  9. Flask系列(六)Flask实例化补充及信号

    一.实例化补充 instance_path和instance_relative_config是配合来用的. 这两个参数是用来找配置文件的,当用app.config.from_pyfile('setti ...

  10. Spring整合Mybatis解决 Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

    在Spring4和Mybatis3整合的时候,dao层注入'sqlSessionFactory'或'sqlSessionTemplate'会报错解决办法如下: package com.alibaba. ...