• rspec-rails中的一些匹配器只有在特定的类型才能使用。


    请求测试

    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,请求测试和功能测试,集成测试都差不多。 

  • 相关阅读:
    判断整除
    洛谷2018-7月月赛
    luogu_P1177 【模板】快速排序 (快排和找第k大的数)
    lowbit() 运算
    64位整数乘法 (二进制思想)
    poj_1995 Raising Modulo Numbers (快速幂)
    poj_3179 Corral the Cows (二分+二维前缀和+离散化)
    Spring-profile 不同环境配置方法
    Spring-id,name 名称,别名关系
    Leecode no.20 合理的括号
  • 原文地址:https://www.cnblogs.com/chentianwei/p/9173759.html
Copyright © 2020-2023  润新知