StandardError
Exception
(Quelle: Honeybadger Blog)
SignalException::Interrupt
ScriptError::SyntaxError
NoMemoryError
NoMethodError
TypeError
begin stuff_that_breaks rescue => e stuff_that_fixes_things end
rescue => e
rescue Exception => e
module MyModule # [...] end
module MusicPlayer VERSION = "0.0.1" class Song end end puts MusicPlayer::VERSION s = MusicPlayer::Song.new
module Logger def log(msg) ; puts msg ; end end class User include Logger end u = User.new u.log("hello")
class System extend Logger end System.log("test")
module MyModule def self.included(klass) puts "MyModule wurde in #{klass} inkludiert" end def self.extended(klass) puts "#{klass} wurde durch MyModule erweitert" end end
module Logger module ClassMethods def setup_logger; end end def log ; end def self.included(klass); klass.extend(ClassMethods); end end class MyClass include Logger end MyClass.setup_logger MyClass.new.log("foo")
assert
refute
assert_equal
assert_instance_of
assert_kind_of
assert_nil
refute_nil
assert_raises
assert_match
class SongTest < MiniTest::Test def setup @song = Song.new('test', 300) end def test_duration_in_minutes assert_equal 5, @song.duration_in_minutes end end
mock = MiniTest::Mock.new mock.expect(:to_s, 'test') mock.to_s mock.verify Time.stub(:now, Time.at(1234567890)) do Time.now # 2009-02-14 00:31:30 +0100 end
Schreibt Tests für Eure Kaffeemaschine.
gem install simplecov
require "debug"
debugger
p
h(elp)
list
where
step
next
break
cont
BigDecimal
Date
IPAddr
Set
require "csv" CSV.foreach("/tmp/test.csv") do |row| pp row end
CSV.open("/tmp/test.csv", "w") do |csv| csv << [23,"test",11] csv << [42,"hallo", 12] end
require 'logger' logger = Logger.new("/tmp/logfile.log") logger.level = Logger::WARN logger.debug("setup complete") logger.error("nothing much is happening...")
mkdir_p
task :hello do puts "hello" end task :world do puts "world" end task :hello_world => [:hello, :world]
rake hello_world
require "rake/testtask" Rake::TestTask.new do |t| t.pattern = 'test/**/*_test.rb' end
rake test
gem install <paketname>
Gemfile
Gemfile.lock
bundle install
bundle gem