如何在使用Sinatra + MiniTest时测试页面标题

时间:2014-03-25 12:48:55

标签: ruby sinatra minitest

我的配置如下:

Rake文件

require 'rake/testtask'

Rake::TestTask.new do |t|
  t.pattern = 'spec/*_spec.rb'
end

的Gemfile

source 'https://rubygems.org'

gem 'sinatra'
gem 'thin'
gem 'rack-test'

spec_helper.rb

ENV['RACK_ENV'] = 'test'

require 'minitest/autorun'
require 'rack/test'
require_relative '../app'

include Rack::Test::Methods

def app
  MyApp
end

app_spec.rb

require_relative 'spec_helper'

describe 'Hello World' do

  it 'should have hello world' do
    get '/'
    last_response.must_be :ok?
    # I want to do something like below
    last_response.title must_match /home page/i
  end
end

如何使用MiniTest和Sinatra测试视图的页面标题。

1 个答案:

答案 0 :(得分:2)

您无法单独使用minitest进行检查。

您应该看 Capybara 来实现这一目标。

  

Capybara通过模拟真实用户的方式来帮助您测试Web应用程序   会与您的应用互动。

设置完成后,使用 has_title? 匹配器来测试呈现页面的标题。

使用Capybara,您可以测试页面的各个方面,如内容/文本,是否有特定链接,特定按钮,文本字段,电子邮件字段等。 您可以模拟填写表单的行为,然后单击按钮以提交表单。简单地说,它只是通过模拟用户可以在给定页面上执行的操作以及用户在给定页面上可以看到的内容来表现为真实用户。