Module: Minitest::Expectations

Included in:
Object
Defined in:
lib/minitest/expectations.rb

Overview

It’s where you hide your “assertions”.

Please note, because of the way that expectations are implemented, all expectations (eg must_equal) are dependent upon a thread local variable :current_spec. If your specs rely on mixing threads into the specs themselves, you’re better off using assertions or the new _(value) wrapper. For example:

it "should still work in threads" do
  my_threaded_thingy do
    (1+1).must_equal 2         # bad
    assert_equal 2, 1+1        # good
    _(1 + 1).must_equal 2      # good
    value(1 + 1).must_equal 2  # good, also #expect
  end
end

Instance Method Summary collapse

Instance Method Details

#_(value = nil, &block) ⇒ Object Also known as: value, expect

Returns a value monad that has all of Expectations methods available to it.

Also aliased to #value and #expect for your aesthetic pleasure:

     _(1 + 1).must_equal 2
 value(1 + 1).must_equal 2
expect(1 + 1).must_equal 2

This method of expectation-based testing is preferable to straight-expectation methods (on Object) because it stores its test context, bypassing our hacky use of thread-local variables.

At some point, the methods on Object will be deprecated and then removed.



38
39
40
# File 'lib/minitest/expectations.rb', line 38

def _ value = nil, &block
  Minitest::Expectation.new block || value, self
end

#assert_emptyObject

See Minitest::Assertions#assert_empty.

collection.must_be_empty

:method: must_be_empty



52
# File 'lib/minitest/expectations.rb', line 52

infect_an_assertion :assert_empty, :must_be_empty, :unary

#assert_equalObject

See Minitest::Assertions#assert_equal

a.must_equal b

:method: must_equal



61
# File 'lib/minitest/expectations.rb', line 61

infect_an_assertion :assert_equal, :must_equal

#assert_in_deltaObject

See Minitest::Assertions#assert_in_delta

n.must_be_close_to m [, delta]

:method: must_be_close_to



70
# File 'lib/minitest/expectations.rb', line 70

infect_an_assertion :assert_in_delta, :must_be_close_to

#assert_in_epsilonObject

See Minitest::Assertions#assert_in_epsilon

n.must_be_within_epsilon m [, epsilon]

:method: must_be_within_epsilon



81
# File 'lib/minitest/expectations.rb', line 81

infect_an_assertion :assert_in_epsilon, :must_be_within_epsilon

#assert_includesObject

See Minitest::Assertions#assert_includes

collection.must_include obj

:method: must_include



90
# File 'lib/minitest/expectations.rb', line 90

infect_an_assertion :assert_includes, :must_include, :reverse

#assert_instance_ofObject

See Minitest::Assertions#assert_instance_of

obj.must_be_instance_of klass

:method: must_be_instance_of



99
# File 'lib/minitest/expectations.rb', line 99

infect_an_assertion :assert_instance_of, :must_be_instance_of

#assert_kind_ofObject

See Minitest::Assertions#assert_kind_of

obj.must_be_kind_of mod

:method: must_be_kind_of



108
# File 'lib/minitest/expectations.rb', line 108

infect_an_assertion :assert_kind_of, :must_be_kind_of

#assert_matchObject

See Minitest::Assertions#assert_match

a.must_match b

:method: must_match



117
# File 'lib/minitest/expectations.rb', line 117

infect_an_assertion :assert_match, :must_match

#assert_nilObject

See Minitest::Assertions#assert_nil

obj.must_be_nil

:method: must_be_nil



126
# File 'lib/minitest/expectations.rb', line 126

infect_an_assertion :assert_nil, :must_be_nil, :unary

#assert_operatorObject

See Minitest::Assertions#assert_operator

n.must_be :<=, 42

This can also do predicates:

str.must_be :empty?

:method: must_be



139
# File 'lib/minitest/expectations.rb', line 139

infect_an_assertion :assert_operator, :must_be, :reverse

#assert_outputObject

See Minitest::Assertions#assert_output

proc { ... }.must_output out_or_nil [, err]

:method: must_output



148
# File 'lib/minitest/expectations.rb', line 148

infect_an_assertion :assert_output, :must_output

#assert_raisesObject

See Minitest::Assertions#assert_raises

proc { ... }.must_raise exception

:method: must_raise



157
# File 'lib/minitest/expectations.rb', line 157

infect_an_assertion :assert_raises, :must_raise

#assert_respond_toObject

See Minitest::Assertions#assert_respond_to

obj.must_respond_to msg

:method: must_respond_to



166
# File 'lib/minitest/expectations.rb', line 166

infect_an_assertion :assert_respond_to, :must_respond_to, :reverse

#assert_sameObject

See Minitest::Assertions#assert_same

a.must_be_same_as b

:method: must_be_same_as



175
# File 'lib/minitest/expectations.rb', line 175

infect_an_assertion :assert_same, :must_be_same_as

#assert_silentObject

See Minitest::Assertions#assert_silent

proc { ... }.must_be_silent

:method: must_be_silent



184
# File 'lib/minitest/expectations.rb', line 184

infect_an_assertion :assert_silent, :must_be_silent

#assert_throwsObject

See Minitest::Assertions#assert_throws

proc { ... }.must_throw sym

:method: must_throw



193
# File 'lib/minitest/expectations.rb', line 193

infect_an_assertion :assert_throws, :must_throw

#refute_emptyObject

See Minitest::Assertions#refute_empty

collection.wont_be_empty

:method: wont_be_empty



202
# File 'lib/minitest/expectations.rb', line 202

infect_an_assertion :refute_empty, :wont_be_empty, :unary

#refute_equalObject

See Minitest::Assertions#refute_equal

a.wont_equal b

:method: wont_equal



211
# File 'lib/minitest/expectations.rb', line 211

infect_an_assertion :refute_equal, :wont_equal

#refute_in_deltaObject

See Minitest::Assertions#refute_in_delta

n.wont_be_close_to m [, delta]

:method: wont_be_close_to



220
# File 'lib/minitest/expectations.rb', line 220

infect_an_assertion :refute_in_delta, :wont_be_close_to

#refute_in_epsilonObject

See Minitest::Assertions#refute_in_epsilon

n.wont_be_within_epsilon m [, epsilon]

:method: wont_be_within_epsilon



231
# File 'lib/minitest/expectations.rb', line 231

infect_an_assertion :refute_in_epsilon, :wont_be_within_epsilon

#refute_includesObject

See Minitest::Assertions#refute_includes

collection.wont_include obj

:method: wont_include



240
# File 'lib/minitest/expectations.rb', line 240

infect_an_assertion :refute_includes, :wont_include, :reverse

#refute_instance_ofObject

See Minitest::Assertions#refute_instance_of

obj.wont_be_instance_of klass

:method: wont_be_instance_of



249
# File 'lib/minitest/expectations.rb', line 249

infect_an_assertion :refute_instance_of, :wont_be_instance_of

#refute_kind_ofObject

See Minitest::Assertions#refute_kind_of

obj.wont_be_kind_of mod

:method: wont_be_kind_of



258
# File 'lib/minitest/expectations.rb', line 258

infect_an_assertion :refute_kind_of, :wont_be_kind_of

#refute_matchObject

See Minitest::Assertions#refute_match

a.wont_match b

:method: wont_match



267
# File 'lib/minitest/expectations.rb', line 267

infect_an_assertion :refute_match, :wont_match

#refute_nilObject

See Minitest::Assertions#refute_nil

obj.wont_be_nil

:method: wont_be_nil



276
# File 'lib/minitest/expectations.rb', line 276

infect_an_assertion :refute_nil, :wont_be_nil, :unary

#refute_operatorObject

See Minitest::Assertions#refute_operator

n.wont_be :<=, 42

This can also do predicates:

str.wont_be :empty?

:method: wont_be



289
# File 'lib/minitest/expectations.rb', line 289

infect_an_assertion :refute_operator, :wont_be, :reverse

#refute_respond_toObject

See Minitest::Assertions#refute_respond_to

obj.wont_respond_to msg

:method: wont_respond_to



298
# File 'lib/minitest/expectations.rb', line 298

infect_an_assertion :refute_respond_to, :wont_respond_to, :reverse

#refute_sameObject

See Minitest::Assertions#refute_same

a.wont_be_same_as b

:method: wont_be_same_as



307
# File 'lib/minitest/expectations.rb', line 307

infect_an_assertion :refute_same, :wont_be_same_as