60 likes | 206 Views
Ruby Unit Test. and other languages… . Process. Create your class with failing methods Create a test class Must extend Test::Unit:: TestCase Must require 'test/unit' Create one or more test methods Name must start with test (e.g., test_conversion )
E N D
Ruby Unit Test and other languages…
Process • Create your class with failing methods • Create a test class • Must extend Test::Unit::TestCase • Must require 'test/unit' • Create one or more test methods • Name must start with test (e.g., test_conversion) • If separate file, must require the class being tested • require_relative “Converter” • require “./Converter” • Run the test program from the command line. All methods beginning with “test” will be executed.
Create a class – failing test class Converter def feetToMeters (feet) return 1 end end
Unit Test can use assert_equal for int require 'test/unit' class ConverterTest< Test::Unit::TestCase @@EPSILON = 0.0001 def test_feetToMeters converter = Converter.new assert_in_delta(3.048, converter.feetToMeters(10), @@EPSILON) assert_in_delta(0.3048, converter.feetToMeters(1), @@EPSILON) assert_in_delta(0.4572, converter.feetToMeters(1.5), @@EPSILON) end end
Create a class – passing test class Converter @@FEET_TO_METERS = 0.3048 def feetToMeters (feet) return feet * @@FEET_TO_METERS; end end
Resources http://apidock.com/ruby/Test/Unit/Assertions/assert_in_delta http://apidock.com/ruby/Test/Unit/Assertions/assert_equal http://www.ruby-doc.org/stdlib-2.0/libdoc/test/unit/rdoc/ There are several Behavior-Driven tools http://rspec.info/ http://expectations.rubyforge.org/