Sha256: 5608435343cabddd215be9f82d9554b6b153c32f0c8ddb88ca3f9c5e083592ad

Contents?: true

Size: 1.44 KB

Versions: 216

Compression:

Stored size: 1.44 KB

Contents

module Generator
  class ExerciseCase
    module Assertion

      # generates assertions of the form
      #
      #   assert whatever
      #   refute whatever
      #
      # depending on whether 'expected' is true or false
      #
      # call as
      #
      #  "#{assert} Luhn.valid?(#{input.inspect})"
      #
      def assert
        canonical.expected ? 'assert' : 'refute'
      end

      # generates assertions of the form
      #
      #   assert_nil whatever
      #   assert_equal expected, whatever
      #
      # depending on whether 'expected' is nil or not
      #
      # call as
      #
      #   assert_equal { "PigLatin.translate(#{input.inspect})" }
      #
      def assert_equal
        assertion = canonical.expected.nil? ? 'assert_nil' :
                      "assert_equal #{canonical.expected.inspect},"
        "#{assertion} #{yield}"
      end

      # a helper function, used to build statements such as
      #
      #   if raises_error?
      #     assert_raises(ArgumentError) { test_case }
      #   else
      #     assert_equal { test_case }
      #   end
      #
      def raises_error?
        canonical.expected.to_i == -1
      end

      # generates assertions of the form
      #
      #   assert_raises(SomeError) { whatever }
      #
      # call as
      #
      #   assert_raises(ArgumentError) { test_case }
      #
      def assert_raises(error)
        "assert_raises(#{error}) { #{yield} }"
      end
    end
  end
end

Version data entries

216 entries across 216 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.179 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.178 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.177 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.176 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.175 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.174 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.173 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.172 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.171 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.170 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.169 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.167 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.166 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.165 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.164 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.163 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.162 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.161 tracks/ruby/lib/generator/exercise_case/assertion.rb
trackler-2.2.1.160 tracks/ruby/lib/generator/exercise_case/assertion.rb