Repository is archived
No commit activity in last 3 years
No release in over 3 years
A collection of helpers for integrating Rails and Minitest.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Minitest Rails Tools

This is a collection of little helpers to make working with Rails and Minitest a bit easier.

Installation

To install this gem, just put it in your Gemfile:

group :test do
  gem 'minitest_rails_tools', :require => false
end

Afterwards require it in your test_helper.rb:

require 'minitest_rails_tools'

Alternatively, you could also just require certain parts of the tools. See the respective section for the command to add only a specific part.

In order to get rid of TestUnit, just open your application.rb and change the following lines:

# Pick the frameworks you want:
# require 'rails/all'
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "sprockets/railtie"
# require "rails/test_unit/railtie"

For generators to use MiniTest instead of TestUnit (additionally) change this:

config.generators do |g|
  g.test_framework :mini_test, :spec => true, :fixture => true
end

Tools

Application Integration

Adds Rails' routes URL helpers and registers ControllerSpecs. Just put the controller name into the describe title:

describe 'FooController' do

  let(:bam) { 42 }

  it 'does generic stuff' do
    get :bar, :zer => bam
    response.message.must_equal("OK")
  end

end

This functionality is separately available by adding:

require 'minitest_rails_tools/application_integration'

Association Matchers

This allows you to test standard Rails associations in your tests:

subject { FactoryGirl.create :foo }

must_belong_to :faz
must_have_one :zer
must_have_many :bams
must_have_many_through :bars, :bams
must_have_and_belong_to_many :berks

This functionality is separately available by adding:

require 'minitest_rails_tools/association_matchers'

Expectations

This adds a couple of extra expectations to improve readability:

Bar.must_differ('count', -1) do
  delete :destroy, :id => subject.to_param
end

subject.foos.must_have_size 20

subject.foos.must_have_same_elements_as Foo.all

This functionality is separately available by adding:

require 'minitest_rails_tools/expectations'

Helper Extension

This allows you to define a helper as your subject (and then call your helper methods on it):

subject { helper :foo_helper }

subject.do_my_stuff.must_equal 'OK'

This functionality is separately available by adding:

require 'minitest_rails_tools/helper_extension'

Validation Matchers

You may use this to test a couple of Rails' validations in your tests:

subject { FactoryGirl.create :foo }

must_validate_presence_of :bar
must_validate_uniqueness_of :baz
must_validate_length_of :zer, :minimum => 2, :maximum => 5

This functionality is separately available by adding:

require 'minitest_rails_tools/validation_matchers'

Copyright © 2013 SUSE released under the MIT license. For full details see LICENSE included in this distribution.