1 / 10

RSpec

RSpec. Testing with RSpec. Test::Unit “does the job”, but it would be nice if tests would be more descriptive, more Enlgish -like RSpec uses some Ruby magic to provide a simple DSL syntax for writing specs/examples (tests)

bandele
Download Presentation

RSpec

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RSpec

  2. Testing with RSpec • Test::Unit “does the job”, but it would be nice if tests would be more descriptive, more Enlgish-like • RSpec uses some Ruby magic to provide a simple DSL syntax for writing specs/examples (tests) • The writing of the tests is more intuitive as well as the output from running the tests

  3. Installing Rspec • Create a spec directory and place your “specs” there

  4. describe() • Set of related tests (a.k.a. example group) • Takes either a String or Class as argument • Describe blocks can be nested • All specs must be inside a describe block • Automagically creates a class where all the action happens (unlike Test::Unit which always subclasses TestCase class)

  5. before() and after() methods • before() and after() methods are similar to setup() and teardown() in Test::Unit • Can pass in either :each or :all (infrequently used) to specify whether the block will run before/after each test or once before/after all tests • before :all could be useful, if for example you only want to connect to DB once

  6. it() method • Used to define the actual RSpec specifications/examples • Takes an optional string that describes the behavior being tested • specify() method is an alias of it() • Usually, specify() is used for one-line tests and it() is used otherwise; but it really depends on what reads better for a particular test and its output

  7. Pending tests • If you are not ready to implement certain behavior, but would like to put a test (not to forget to test it in the future) – you can put it in and just omit the actual test block • Or you can call pending() method inside the block and RSpec will mark the method as pending

  8. calculator.rb

  9. calculator_spec.rb

  10. Default and documentation formats

More Related