Ruby/Unit Test/assert

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

Содержание

add an assertion to test_basic that"s certainly going to fail

require "test/unit"
class String
  def titleize
    self.gsub(/\s(\w)/) { |letter| letter.upcase }.gsub(/^\w/) do |letter|
      letter.upcase
    end
  end
end
def test_words
    assert_equal("Let"s make a test fail!", "foo".titleize)
end



assert(<boolean expression>): Only passes if the boolean expression isn"t false or nil (for example, assert 2 == 1 will always fail).

require "test/unit"
class String
  def titleize
    self.gsub(/\s(\w)/) { |letter| letter.upcase }.gsub(/^\w/) do |letter|
      letter.upcase
    end
  end
end
def test_words
    assert("Let"s make a test fail!", "foo".titleize)
end



assert_equal(expected, actual): Only passes if the expected and actual values are equal (as compared with the == operator). assert_equal("A", "a".upcase) will pass.

require "test/unit"
class String
  def titleize
    self.gsub(/\s(\w)/) { |letter| letter.upcase }.gsub(/^\w/) do |letter|
      letter.upcase
    end
  end
end
 
def test_words
    assert_equal("Let"s make a test fail!", "foo".titleize)
end



assert_not_equal(expected, actual): The opposite of assert_equal. This test will fail if the expected and actual values are equal.

require "test/unit"
class String
  def titleize
    self.gsub(/\s(\w)/) { |letter| letter.upcase }.gsub(/^\w/) do |letter|
      letter.upcase
    end
  end
end
def test_words
   assert_not_equal("Let"s make a test fail!", "foo".titleize)
end



Testing Word Separation

require "test/unit"
class String
  def words
    scan(/\w[\w\"\-]*/)
  end
end
def test_words
  assert_equal(%w{this is a test}, "this is a test".words)
  assert_equal(%w{these are mostly words}, "these are, mostly, words".words)
end