Module: Test::Unit::Given::Any

Included in:
TestCase
Defined in:
lib/test/unit/given/any.rb

Overview

Public: Provides the ability to vend arbitrary values without using literals, or long calls to Faker. This has two levels of utility:

helper methods - #any_number, #any_int, #any_string provide arbitrary primitives to make it clear what numbers, ints, and strings in your tests are relevant. Arbitrary values should use one of these any_ helpers.

any sort of any - you can define your own "any" values by using #new_any, which allows you to extend things if you like. Of course, you could just make your own any_method as well.

Constant Summary collapse

MAX_RAND =
50000

Instance Method Summary collapse

Instance Method Details

#any(sym, options = {}) ⇒ Object

Public: Get a predefined, arbitrary any.

sym - the any that has been defined already. By default, the following are defined: :string - does any_string String - does any_string :number - does any_number Numeric - does any_number Float - does any_number :int - does any_int Fixnum - does any_int Integer - does any_int options - whatever options are relevant to the user-defined any

Example

new_any(:foo) do |options|
  if options[:bar]
    'bar'
  else
    'quux'
  end
end

some_foo = any :foo
some_other_foo = any :foo, :bar => true


72
73
74
# File 'lib/test/unit/given/any.rb', line 72

def any(sym,options = {})
  anies[sym].call(options)
end

#any_int(*options) ⇒ Object

Public: Returns an integer. options is the same as for #any_number



28
29
30
# File 'lib/test/unit/given/any.rb', line 28

def any_int(*options)
  any :int,options
end

#any_number(*options) ⇒ Object

Public: Get any number; one that doesn't matter

options - options to control what sort of number comes back: :positive - make sure that the number is greater than zero :negative - make sure that the number is less than zero



23
24
25
# File 'lib/test/unit/given/any.rb', line 23

def any_number(*options)
  any :number,options
end

#any_string(options = {}) ⇒ Object

Public: Get an arbitrary string of any potential length (the real max is 2048 characters if you don't override it)

options - options to control the returned string :max the max size of the string you want :min the minimum size we want to come back

Example

any_string :max => 255 # => ensure it'll fit into a varchar(255)
any_string :min => 1024 # at least 1024 characters


43
44
45
# File 'lib/test/unit/given/any.rb', line 43

def any_string(options = {})
  any :string,options
end

#new_any(any, &block) ⇒ Object

Public: Create a new any that can be retrieved via #any

any - the identifer of your new any. Can be anything though a Symbol or classname would be appropriate block - the block that will be called whenever you #any your any.



80
81
82
# File 'lib/test/unit/given/any.rb', line 80

def new_any(any,&block)
  anies[any] = block
end