CSC/ECE 517 Fall 2011/ch2 2e gp: Difference between revisions
Line 5: | Line 5: | ||
__TOC__ | __TOC__ | ||
= Introduction = | = Introduction = | ||
No code is perfect from the word go! Testing plays an important role in System Development Life Cycle. During testing, we follow a taxonomic procedure to uncover defects at various stages. | No code is perfect from the word go! Testing plays an important role in System Development Life Cycle. During testing, we follow a taxonomic procedure to uncover defects at various stages. A test framework provides various Test Types, Test Phases, Test Models, Test Metrics and acts as a guideline as to how to perform effective testing. Various testing tools are available for [http://en.wikipedia.org/wiki/Ruby Ruby]language, each having some unique features over others. Here is a brief introduction and feature comparisons of popular testing frameworks. | ||
= Unit Testing = | = Unit Testing = |
Revision as of 15:49, 17 September 2011
Testing Frameworks for Ruby
This page serves as a knowledge source for understanding the different Testing Frameworks available for Ruby.
Introduction
No code is perfect from the word go! Testing plays an important role in System Development Life Cycle. During testing, we follow a taxonomic procedure to uncover defects at various stages. A test framework provides various Test Types, Test Phases, Test Models, Test Metrics and acts as a guideline as to how to perform effective testing. Various testing tools are available for Rubylanguage, each having some unique features over others. Here is a brief introduction and feature comparisons of popular testing frameworks.
Unit Testing
Unit Testing is a method by which we can isolate and test a unit functionality of the program, typically individual methods during and long after the code is written.
Test::Unit
The in-built, ready to use unit testing mechanism for Ruby is called Test::Unit.It belongs to the XUnit family unit testing framework. It has a setup method for initialization, a teardown method for cleanup and the actual test methods itself. The tests are bundled separately in a test class in the code it is aimed to test.
Assertions
We can use Test::Unit to make assertions. The test is successful if the assertion is true and fails if the assertion is false.
assert( boolean, [message] ) | True if boolean |
assert_equal( expected, actual, [message] ) assert_not_equal( expected, actual, [message] ) |
True if expected == actual |
assert_raise( Exception,... ) {block} assert_nothing_raised( Exception,...) {block} |
True if the block raises (or doesn't) one of the listed exceptions. |