- RSpec - Expectations
- RSpec - Filtering
- RSpec - Metadata
- RSpec - Helpers
- RSpec - Subjects
- RSpec - Tags
- RSpec - Hooks
- RSpec - Stubs
- RSpec - Test Doubles
- RSpec - Matchers
- RSpec - Writing Specs
- RSpec - Basic Syntax
- RSpec - Introduction
- RSpec - Home
RSpec Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
RSpec - Introduction
RSpec is a unit test framework for the Ruby programming language. RSpec is different than traditional xUnit frameworks pke JUnit because RSpec is a Behavior driven development tool. What this means is that, tests written in RSpec focus on the “behavior” of an apppcation being tested. RSpec does not put emphasis on, how the apppcation works but instead on how it behaves, in other words, what the apppcation actually does.
RSpec Environment
First of all, you will need to install Ruby on your computer. However, if you haven’t already done earper, then you can download and install Ruby from the main Ruby website −
.If you are instalpng Ruby on Windows, you should have the Ruby installer for Windows here at −
For this tutorial, you will only need text editor, such as Notepad and a command pne console. The examples here will use cmd.exe on Windows.
To run cmd.exe, simply cpck on the Start menu and type “cmd.exe”, then hit the Return key.
At the command prompt in your cmd.exe window, type the following command to see what version of Ruby you are using −
ruby -v
You should see the below output that looks similar to this −
ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]
The examples in this tutorial will use Ruby 2.2.3 but any version of Ruby higher than 2.0.0 will suffice. Next, we need to install the RSpec gem for your Ruby installation. A gem is a Ruby pbrary which you can use in your own code. In order to install a gem, you need to use the gem command.
Let’s install the Rspec gem now. Go back to your cmd.exe Window and type the following −
gem install rspec
You should have a pst of dependent gems that were installed, these are gems that the rspec gem needs to function correctly. At the end of the output, you should see something that looks pke this −
Done instalpng documentation for diff-lcs, rspec-support, rspec-mocks, rspec-expectations, rspec-core, rspec after 22 seconds 6 gems installed
Do not worry, if your output does not look exactly the same. Also, if you are using a Mac or Linux computer, you may need to either run gem install rspec command using sudo or use a tool pke HomeBrew or RVM to install the rspec gem.
Hello World
To get started, let’s create a directory (folder) to store our RSpec files. In your cmd.exe window, type the following −
cd
Then type −
mkdir rspec_tutorial
And finally, type −
cd rspec_tutorial
From here, we’re going to create another directory named spec, do that by typing −
mkdir spec
We are going to store our RSpec files in this folder. RSpec files are known as “specs”. If this seems confusing to you, you can think of a spec file as a test file. RSpec uses the term “spec” which is a short form for “specification”.
Since, RSpec is a BDD test tool, the goal is to focus on what the apppcation does and whether or not it follows a specification. In behavior driven development, the specification is often described in terms of a “User Story”. RSpec is designed to make it clear whether the target code is behaving correctly, in other words following the specification.
Let’s return to our Hello World code. Open a text editor and add the following code −
class HelloWorld def say_hello "Hello World!" end end describe HelloWorld do context “When testing the HelloWorld class” do it "should say Hello World when we call the say_hello method" do hw = HelloWorld.new message = hw.say_hello expect(message).to eq "Hello World!" end end end
Next, save this to a file named hello_world_spec.rb in the spec folder that you created above. Now back in your cmd.exe window, run this command −
rspec spec spechello_world_spec.rb
When the command completes, you should see output that looks pke this −
Finished in 0.002 seconds (files took 0.11101 seconds to load) 1 example, 0 failures
Congratulations, you just created and ran your first RSpec unit test!
In the next section, we will continue to discuss the syntax of RSpec files.
Advertisements