Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove unit test and replace it with rspec?

Tags:

I have a rails app, that is setup with the default test unit, how can I remove it and use rspec instead? (I don't have any tests written, I just didn't ignore it during app generation).

like image 700
Blankman Avatar asked Feb 22 '11 00:02

Blankman


People also ask

Is RSpec used for unit testing?

RSpec is a unit test framework for the Ruby programming language. RSpec is different than traditional xUnit frameworks like JUnit because RSpec is a Behavior driven development tool.

Is RSpec TDD or BDD?

RSpec is a testing tool for Ruby, created for behavior-driven development (BDD). It is the most frequently used testing library for Ruby in production applications. Even though it has a very rich and powerful DSL (domain-specific language), at its core it is a simple tool which you can start using rather quickly.

How do I run a test in RSpec?

Running tests by their file or directory names is the most familiar way to run tests with RSpec. RSpec can take a file name or directory name and run the file or the contents of the directory. So you can do: rspec spec/jobs to run the tests found in the jobs directory.

What is RSpec capybara?

Capybara is a web-based test automation software that simulates scenarios for user stories and automates web application testing for behavior-driven software development. It is written in the Ruby programming language. Capybara.


2 Answers

You can actually have any number of testing frameworks in use at the same time. For example, you can use cucumber, rspec, test-unit and mini-test and they will all function without stepping on each other's feet. To use rspec in rails simply add the following to your Gemfile:

group :development, :test do   gem 'rspec-rails' end 

Then update or install your bundle and run the following command to setup rspec:

rails generate rspec:install 

You can find more information here.

like image 112
Pan Thomakos Avatar answered Oct 22 '22 19:10

Pan Thomakos


For Rails 3, to really remove test_unit from your application, you need to remove (or comment out) the test_unit Railtie in application.rb

# require "rails/test_unit/railtie" 

As Pan mentions, you don't have to just choose one testing framework. But you asked how to remove test_unit, so that is how you really do it.

(Curious about what this line of code does? Check out the railties/lib/rails/test_unit/railtie.rb source.)

To install RSpec into your app, follow the directions on rspec-rails. As it says, add rspec-rails to the :test and :development groups in the Gemfile:

group :test, :development do   gem "rspec-rails", "~> 2.0" end 

Then run bundle install and then rails generate rspec:install

like image 20
David J. Avatar answered Oct 22 '22 19:10

David J.