assert 2.16.5 → 2.18.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. checksums.yaml +7 -7
  2. data/Gemfile +3 -1
  3. data/README.md +79 -54
  4. data/assert.gemspec +6 -5
  5. data/bin/assert +4 -4
  6. data/lib/assert.rb +8 -18
  7. data/lib/assert/actual_value.rb +127 -0
  8. data/lib/assert/assert_runner.rb +7 -10
  9. data/lib/assert/assertions.rb +15 -28
  10. data/lib/assert/cli.rb +41 -57
  11. data/lib/assert/config.rb +8 -12
  12. data/lib/assert/config_helpers.rb +6 -10
  13. data/lib/assert/context.rb +30 -24
  14. data/lib/assert/context/let_dsl.rb +13 -0
  15. data/lib/assert/context/method_missing.rb +19 -0
  16. data/lib/assert/context/setup_dsl.rb +0 -4
  17. data/lib/assert/context/subject_dsl.rb +0 -4
  18. data/lib/assert/context/suite_dsl.rb +0 -4
  19. data/lib/assert/context/test_dsl.rb +5 -9
  20. data/lib/assert/context_info.rb +2 -6
  21. data/lib/assert/default_runner.rb +1 -5
  22. data/lib/assert/default_suite.rb +1 -6
  23. data/lib/assert/default_view.rb +8 -12
  24. data/lib/assert/factory.rb +1 -4
  25. data/lib/assert/file_line.rb +0 -4
  26. data/lib/assert/macro.rb +1 -4
  27. data/lib/assert/macros/methods.rb +5 -11
  28. data/lib/assert/result.rb +19 -34
  29. data/lib/assert/runner.rb +12 -11
  30. data/lib/assert/stub.rb +16 -2
  31. data/lib/assert/suite.rb +3 -7
  32. data/lib/assert/test.rb +13 -18
  33. data/lib/assert/utils.rb +8 -12
  34. data/lib/assert/version.rb +1 -1
  35. data/lib/assert/view.rb +18 -21
  36. data/lib/assert/view_helpers.rb +6 -17
  37. data/log/{.gitkeep → .keep} +0 -0
  38. data/test/helper.rb +26 -41
  39. data/test/support/factory.rb +20 -6
  40. data/test/support/inherited_stuff.rb +0 -2
  41. data/test/system/stub_tests.rb +350 -354
  42. data/test/system/test_tests.rb +119 -133
  43. data/test/unit/actual_value_tests.rb +335 -0
  44. data/test/unit/assert_tests.rb +125 -52
  45. data/test/unit/assertions/assert_block_tests.rb +34 -37
  46. data/test/unit/assertions/assert_empty_tests.rb +38 -38
  47. data/test/unit/assertions/assert_equal_tests.rb +84 -86
  48. data/test/unit/assertions/assert_file_exists_tests.rb +37 -39
  49. data/test/unit/assertions/assert_includes_tests.rb +45 -46
  50. data/test/unit/assertions/assert_instance_of_tests.rb +39 -40
  51. data/test/unit/assertions/assert_kind_of_tests.rb +39 -40
  52. data/test/unit/assertions/assert_match_tests.rb +39 -40
  53. data/test/unit/assertions/assert_nil_tests.rb +35 -38
  54. data/test/unit/assertions/assert_raises_tests.rb +58 -62
  55. data/test/unit/assertions/assert_respond_to_tests.rb +41 -42
  56. data/test/unit/assertions/assert_same_tests.rb +94 -90
  57. data/test/unit/assertions/assert_true_false_tests.rb +67 -69
  58. data/test/unit/assertions_tests.rb +17 -19
  59. data/test/unit/config_helpers_tests.rb +41 -43
  60. data/test/unit/config_tests.rb +42 -46
  61. data/test/unit/context/let_dsl_tests.rb +10 -0
  62. data/test/unit/context/setup_dsl_tests.rb +72 -91
  63. data/test/unit/context/subject_dsl_tests.rb +18 -51
  64. data/test/unit/context/suite_dsl_tests.rb +19 -23
  65. data/test/unit/context/test_dsl_tests.rb +52 -59
  66. data/test/unit/context_info_tests.rb +19 -21
  67. data/test/unit/context_tests.rb +175 -178
  68. data/test/unit/default_runner_tests.rb +4 -10
  69. data/test/unit/default_suite_tests.rb +54 -59
  70. data/test/unit/factory_tests.rb +6 -9
  71. data/test/unit/file_line_tests.rb +34 -40
  72. data/test/unit/macro_tests.rb +11 -20
  73. data/test/unit/result_tests.rb +156 -182
  74. data/test/unit/runner_tests.rb +72 -79
  75. data/test/unit/suite_tests.rb +62 -63
  76. data/test/unit/test_tests.rb +143 -147
  77. data/test/unit/utils_tests.rb +49 -62
  78. data/test/unit/view_helpers_tests.rb +67 -70
  79. data/test/unit/view_tests.rb +26 -32
  80. metadata +54 -47
  81. data/.assert.rb +0 -3
  82. data/.gitignore +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA1:
3
- data.tar.gz: 624cea8dff7a65ada7c133ccf0ad93d8f70fb050
4
- metadata.gz: f60b216b9827bab390bb1be74d2161392a087489
5
- SHA512:
6
- data.tar.gz: 7dda4ee76847adaeb2b3044e186baa73c36c1f1f52c8575fa5afb73366636a86ef84381f9db39049e728881981add634206deb1fb9f1ba97932cecb0aa141f75
7
- metadata.gz: 13e4b4811041f08d2686edad2f41654f6d711fdb9ed7f6d2863f7a090397ec8b7e9f460cfb6d1aba55f04cfe149992b5a44d57744f98fda4c001bd6223e7dea5
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ff0d6ff9233adc09dda972e165c47c125e158e46b0329b927eb7de201ddebf65
4
+ data.tar.gz: 8f77b5326cf44e2ed0c7ed72cac390a7147191634354feb2b890f73d572b366f
5
+ SHA512:
6
+ metadata.gz: 25b58fd65c099c0c9f8ff16a652e28d5baeae76838b640872224abd7d063759d6fd40b3ec927220260d82321f78cc4b7617d50a081c7ba336b04d45acec8f618
7
+ data.tar.gz: 669749ff845ae1811802042dd28e27e7a387d9d39a9504d73b8b04667c9597c4da08bd56cc26a7b34838e5afde2970215027a7d3967ad1e7f99175c62c49a08e
data/Gemfile CHANGED
@@ -1,5 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
 
3
+ ruby "~>2.4"
4
+
3
5
  gemspec
4
6
 
5
- gem 'pry', "~> 0.9.0"
7
+ gem "pry", "~> 0.12.2"
data/README.md CHANGED
@@ -5,14 +5,12 @@
5
5
  ```ruby
6
6
  # in test/my_tests.rb
7
7
 
8
- require 'assert'
8
+ require "assert"
9
9
 
10
10
  class MyTests < Assert::Context
11
-
12
11
  test "something" do
13
- assert_equal 1, 1
12
+ assert_that(1).equals(1)
14
13
  end
15
-
16
14
  end
17
15
  ```
18
16
 
@@ -35,13 +33,13 @@ Running tests in random order, seeded with "56382"
35
33
 
36
34
  ## What Assert is not
37
35
 
38
- * **RSpec/spec-anything**: define tests using assertion statements
39
- * **Unit/Functional/Integration/etc**: Assert is agnostic - you define whatever kinds of tests you like (one or more of the above) and assert runs them in context
40
- * **Mock/Spec/BDD/etc**: Assert is the framework and there are a variety of 3rd party tools to do such things - feel free to use whatever you like
36
+ * **RSpec/spec-anything**: define tests using assertion statements.
37
+ * **Unit/Functional/Integration/etc**: Assert is agnostic - you define whatever kinds of tests you like and Assert runs them in context.
38
+ * **Mock/Spec/BDD/etc**: Assert is the framework and there are a variety of 3rd party tools to do such things. Feel free to use whatever you like.
41
39
 
42
40
  ## Description
43
41
 
44
- Assert is an assertion style testing framework, meaning you use assertion statements to define your tests and create results. Assert uses class-based contexts so if you want to nest your contexts, use inheritance.
42
+ Assert is an assertion-style testing framework, meaning you use assertion statements to define your tests and create results. Assert uses class-based contexts so if you want to nest your contexts, use inheritance.
45
43
 
46
44
  ### Features
47
45
 
@@ -52,6 +50,7 @@ Assert is an assertion style testing framework, meaning you use assertion statem
52
50
  * class-based contexts
53
51
  * multiple before/setup & after/teardown blocks
54
52
  * around blocks
53
+ * `let` value declarations
55
54
  * full backtrace for errors
56
55
  * optionally pretty print objects in failure descriptions
57
56
  * [stubbing API](https://github.com/redding/assert#stub)
@@ -73,64 +72,92 @@ Assert comes with a stubbing API - all it does is replace method calls. In gene
73
72
  * no methods are added to `Object` to support stubbing
74
73
  * stubs are auto-unstubbed on test teardown
75
74
 
76
- **Note**: Assert's stubbing logic has been extracted into a separate gem: [MuchStub](https://github.com/redding/much-stub/#muchstub). However, the main `Assert.{stub|unstub|stub_send|etc}` api is still available (it just proxies MuchStub now).
75
+ **Note**: Assert's stubbing logic has been extracted into a separate gem: [MuchStub](https://github.com/redding/much-stub/#muchstub). However, the main `Assert.{stub|unstub|stub_send|stub_tap|etc}` api is still available (it just proxies to MuchStub now).
77
76
 
78
77
  ```ruby
79
78
  myclass = Class.new do
80
- def mymeth; 'meth'; end
81
- def myval(val); val; end
79
+ def my_method
80
+ "my_method"
81
+ end
82
+
83
+ def my_value(value)
84
+ value
85
+ end
82
86
  end
83
- myobj = myclass.new
87
+ my_object = myclass.new
84
88
 
85
- myobj.mymeth
86
- # => 'meth'
87
- myobj.myval(123)
89
+ my_object.my_method
90
+ # => "my_method"
91
+ my_object.my_value(123)
88
92
  # => 123
89
- myobj.myval(456)
93
+ my_object.my_value(456)
90
94
  # => 456
91
95
 
92
- Assert.stub(myobj, :mymeth)
93
- myobj.mymeth
94
- # => StubError: `mymeth` not stubbed.
95
- Assert.stub(myobj, :mymeth){ 'stub-meth' }
96
- myobj.mymeth
97
- # => 'stub-meth'
98
- myobj.mymeth(123)
96
+ Assert.stub(my_object, :my_method)
97
+ my_object.my_method
98
+ # => StubError: `my_method` not stubbed.
99
+ Assert.stub(my_object, :my_method){ "stub-meth" }
100
+ my_object.my_method
101
+ # => "stub-meth"
102
+ my_object.my_method(123)
99
103
  # => StubError: arity mismatch
100
- Assert.stub(myobj, :mymeth).with(123){ 'stub-meth' }
104
+ Assert.stub(my_object, :my_method).with(123){ "stub-meth" }
101
105
  # => StubError: arity mismatch
102
- Assert.stub_send(myobj, :mymeth) # call to the original method post-stub
103
- # => 'meth'
104
106
 
105
- Assert.stub(myobj, :myval){ 'stub-meth' }
107
+ # Call the original method after it has been stubbed.
108
+ Assert.stub_send(my_object, :my_method)
109
+ # => "my_method"
110
+
111
+ Assert.stub(my_object, :my_value){ "stub-meth" }
106
112
  # => StubError: arity mismatch
107
- Assert.stub(myobj, :myval).with(123){ |val| val.to_s }
108
- myobj.myval
113
+ Assert.stub(my_object, :my_value).with(123){ |val| val.to_s }
114
+ my_object.my_value
109
115
  # => StubError: arity mismatch
110
- myobj.myval(123)
111
- # => '123'
112
- myobj.myval(456)
113
- # => StubError: `myval(456)` not stubbed.
114
- Assert.stub_send(myobj, :myval, 123) # call to the original method post-stub
116
+ my_object.my_value(123)
117
+ # => "123"
118
+ my_object.my_value(456)
119
+ # => StubError: `my_value(456)` not stubbed.
120
+
121
+ # Call the original method after it has been stubbed.
122
+ Assert.stub_send(my_object, :my_value, 123)
115
123
  # => 123
116
- Assert.stub_send(myobj, :myval, 456)
124
+ Assert.stub_send(my_object, :my_value, 456)
117
125
  # => 456
118
126
 
119
- Assert.unstub(myobj, :mymeth)
120
- Assert.unstub(myobj, :myval)
127
+ # Stub a method while preserving its behavior and return value.
128
+ my_value_called_with = nil
129
+ Assert.stub_tap(my_object, :my_value) { |value, *args|
130
+ my_value_called_with = args
131
+ Assert.stub(value, :to_s) { "FIREWORKS!" }
132
+ }
133
+ value = my_object.my_value(123)
134
+ # => 123
135
+ my_value_called_with
136
+ # => [123]
137
+ value.to_s
138
+ # =>"FIREWORKS!"
139
+
140
+ # Unstub individual stubs
141
+ Assert.unstub(my_object, :my_method)
142
+ Assert.unstub(my_object, :my_value)
121
143
 
122
- myobj.mymeth
123
- # => 'meth'
124
- myobj.myval(123)
144
+ # OR blanket unstub all stubs
145
+ Assert.unstub!
146
+
147
+ my_object.my_method
148
+ # => "my_method"
149
+ my_object.my_value(123)
125
150
  # => 123
126
- myobj.myval(456)
151
+ value = my_object.my_value(456)
127
152
  # => 456
153
+ value.to_s
154
+ # => "456"
128
155
  ```
129
156
 
130
157
  ## Factory
131
158
 
132
159
  ```ruby
133
- require 'assert/factory'
160
+ require "assert/factory"
134
161
 
135
162
  Assert::Factory.integer #=> 15742
136
163
  Assert::Factory.integer(3) #=> 2
@@ -197,7 +224,7 @@ As an example, say your test folder has a file structure like so:
197
224
  | | - slow_tests.rb
198
225
  ```
199
226
 
200
- * `$ assert` - runs all tests ('./test' is used if no paths are given)
227
+ * `$ assert` - runs all tests ("./test" is used if no paths are given)
201
228
  * `$ assert test/basic` - run all tests in basic_tests.rb
202
229
  * `$ assert test/complex/fast_tests.rb` - runs all tests in fast_tests.rb
203
230
  * `$ assert test/basic test/comp` - runs all tests in basic_tests.rb, complex_tests.rb, fast_tests.rb and slow_tests.rb
@@ -237,7 +264,7 @@ Assert accepts options from its CLI. Use these options to specify absolute runt
237
264
  Assert uses its [`Assert::Runner`](/lib/assert/runner.rb) to run tests. You can extend this default runner or use your own runner implementation. Specify it in your user/local settings:
238
265
 
239
266
  ```ruby
240
- require 'my_awesome_runner_class'
267
+ require "my_awesome_runner_class"
241
268
 
242
269
  Assert.configure do |config|
243
270
  config.runner MyAwesomeRunnerClass.new
@@ -326,7 +353,7 @@ $ assert [-v|--verbose|--no-verbose]
326
353
 
327
354
  ### Capture Output
328
355
 
329
- By default, Assert shows any output on `$stdout` produced while running a test. It provides a setting to override whether to show this output or to 'capture' it and display it in the test result details:
356
+ By default, Assert shows any output on `$stdout` produced while running a test. It provides a setting to override whether to show this output or to "capture" it and display it in the test result details:
330
357
 
331
358
  In user/local settings file:
332
359
 
@@ -404,7 +431,7 @@ This, of course, assumes you are working in a git repository. If you are not or
404
431
  ```ruby
405
432
  Assert.configure do |config|
406
433
  config.changed_proc Proc.new do |config, test_paths|
407
- `git diff --name-only master -- #{test_paths.join(' ')}`.split("\n") # or whatever
434
+ `git diff --name-only master -- #{test_paths.join(" ")}`.split("\n") # or whatever
408
435
  end
409
436
  end
410
437
  ```
@@ -413,13 +440,11 @@ If you just want to disable this feature completely:
413
440
 
414
441
  ```ruby
415
442
  Assert.configure do |config|
416
-
417
443
  # run nothing if the `-c` flag is given
418
444
  config.changed_proc Proc.new{ |config, test_paths| [] }
419
445
 
420
446
  # run all test paths if the `-c` flag is given
421
447
  config.changed_proc Proc.new{ |config, test_paths| test_paths }
422
-
423
448
  end
424
449
  ```
425
450
 
@@ -571,7 +596,7 @@ Beyond that, each view can do as it sees fit. Initialize how you wish, take wha
571
596
  To use a 3rd party custom view, first require it in and then configure it. Assert provides a helper for requiring in views. It can be used in two ways. You can pass a fully qualified path to the helper and if it exists, will require it in.
572
597
 
573
598
  ```ruby
574
- Assert::View.require_user_view '/path/to/my/view'
599
+ Assert::View.require_user_view "/path/to/my/view"
575
600
  ```
576
601
 
577
602
  Alternatively, you can install/clone/copy/write your view implementations in `~/.assert/views` and require it in by name. To have assert require it by name, have it installed at `~/assert/views/view_name/lib/view_name.rb` (this structure is compatible with popular conventions for rubygem development). For example:
@@ -579,7 +604,7 @@ Alternatively, you can install/clone/copy/write your view implementations in `~/
579
604
  ```ruby
580
605
  # assuming ~/.assert/views/my-custom-view/lib/my-custom-view.rb exists
581
606
  # this will require it in
582
- Assert::View.require_user_view 'my-custom-view'
607
+ Assert::View.require_user_view "my-custom-view"
583
608
  ```
584
609
 
585
610
  Once your view class is required in, use it and configure it just as you would any view.
@@ -592,7 +617,7 @@ A `Suite` object is reponsible for collecting and structuring tests and defines
592
617
 
593
618
  ### Runner
594
619
 
595
- A `Runner` object is responsible for running a suite of tests and firing event callbacks to the `View`. Any runner object should take the test suite and view as arguments and should provide a 'run' method that runs the tests and renders the view.
620
+ A `Runner` object is responsible for running a suite of tests and firing event callbacks to the `View`. Any runner object should take the test suite and view as arguments and should provide a "run" method that runs the tests and renders the view.
596
621
 
597
622
  ### Context
598
623
 
@@ -620,7 +645,7 @@ A `View` object is responsible for rendering test result output. Assert provide
620
645
 
621
646
  ### Macro
622
647
 
623
- Macros are procs that define sets of test code and make it available for easy reuse. Macros work nicely with the 'should' and 'test' context methods.
648
+ Macros are procs that define sets of test code and make it available for easy reuse. Macros work nicely with the "should" and "test" context methods.
624
649
 
625
650
  ## Installation
626
651
 
@@ -636,10 +661,10 @@ If submitting a Pull Request, please:
636
661
 
637
662
  1. Fork it
638
663
  2. Create your feature branch (`git checkout -b my-new-feature`)
639
- 3. Commit your changes (`git commit -am 'Added some feature'`)
664
+ 3. Commit your changes (`git commit -am "Added some feature"`)
640
665
  4. Push to the branch (`git push origin my-new-feature`)
641
666
  5. Create new Pull Request
642
667
 
643
668
  One note: please respect that Assert itself is intended to be the flexible, base-level, framework-type logic that should change little if at all. Pull requests for niche functionality or personal testing philosphy stuff will likely not be accepted.
644
669
 
645
- If you wish to extend Assert for your niche purpose/desire/philosophy, please do so in it's own gem (preferrably named `assert-<whatever>`) that uses Assert as a dependency.
670
+ If you wish to extend Assert for your niche purpose/desire/philosophy, please do so in its own gem (preferrably named `assert-<whatever>`) that uses Assert as a dependency.
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require "assert/version"
5
5
 
@@ -11,14 +11,15 @@ Gem::Specification.new do |gem|
11
11
  gem.summary = %q{Assertion style testing framework.}
12
12
  gem.description = %q{Assertion style testing framework.}
13
13
  gem.homepage = "http://github.com/redding/assert"
14
- gem.license = 'MIT'
14
+ gem.license = "MIT"
15
15
 
16
- gem.files = `git ls-files`.split($/)
16
+ gem.files = `git ls-files | grep "^[^.]"`.split($/)
17
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
20
 
21
- gem.add_dependency("much-factory", ["~> 0.1.0"])
22
- gem.add_dependency("much-stub", ["~> 0.1.0"])
21
+ gem.required_ruby_version = "~> 2.5"
23
22
 
23
+ gem.add_dependency("much-factory", ["~> 0.1.0"])
24
+ gem.add_dependency("much-stub", ["~> 0.1.4"])
24
25
  end
data/bin/assert CHANGED
@@ -3,10 +3,10 @@
3
3
  # Copyright (c) 2011-Present Kelly Redding and Collin Redding
4
4
  #
5
5
 
6
- require 'assert'
7
- require 'assert/cli'
6
+ require "assert"
7
+ require "assert/cli"
8
8
 
9
- Assert.config.debug ENV['ASSERT_DEBUG'] == 'true' || Assert::CLI.debug?(ARGV)
9
+ Assert.config.debug ENV["ASSERT_DEBUG"] == "true" || Assert::CLI.debug?(ARGV)
10
10
 
11
- Assert::CLI.bench('CLI init and parse'){ @cli = Assert::CLI.new(*ARGV) }
11
+ Assert::CLI.bench("CLI init and parse"){ @cli = Assert::CLI.new(*ARGV) }
12
12
  @cli.run
@@ -1,15 +1,14 @@
1
- require 'assert/version'
1
+ require "assert/version"
2
2
 
3
- require 'assert/config'
4
- require 'assert/context'
5
- require 'assert/runner'
6
- require 'assert/stub'
7
- require 'assert/suite'
8
- require 'assert/utils'
9
- require 'assert/view'
3
+ require "assert/config"
4
+ require "assert/context"
5
+ require "assert/runner"
6
+ require "assert/stub"
7
+ require "assert/suite"
8
+ require "assert/utils"
9
+ require "assert/view"
10
10
 
11
11
  module Assert
12
-
13
12
  def self.config; @config ||= Config.new; end
14
13
  def self.configure; yield self.config if block_given?; end
15
14
 
@@ -21,14 +20,5 @@ module Assert
21
20
  class Context
22
21
  teardown{ Assert.unstub! }
23
22
  end
24
-
25
23
  end
26
24
 
27
- # Kernel#caller_locations polyfill for pre ruby 2.0.0
28
- if RUBY_VERSION =~ /\A1\..+/ && !Kernel.respond_to?(:caller_locations)
29
- module Kernel
30
- def caller_locations(start = 1, length = nil)
31
- length ? caller[start, length] : caller[start..-1]
32
- end
33
- end
34
- end
@@ -0,0 +1,127 @@
1
+ require "much-stub"
2
+
3
+ module Assert; end
4
+ class Assert::ActualValue
5
+ def initialize(value, context:)
6
+ @value = value
7
+ @context = context
8
+ end
9
+
10
+ def returns_true(*args)
11
+ @context.assert_block(*args, &@value)
12
+ end
13
+
14
+ def does_not_return_true(*args)
15
+ @context.assert_not_block(*args, &@value)
16
+ end
17
+
18
+ def raises(*expected_exceptions)
19
+ @context.assert_raises(*expected_exceptions, &@value)
20
+ end
21
+
22
+ def does_not_raise(*expected_exceptions)
23
+ @context.assert_nothing_raised(*expected_exceptions, &@value)
24
+ end
25
+
26
+ def is_a_kind_of(expected_class, *args)
27
+ @context.assert_kind_of(expected_class, @value, *args)
28
+ end
29
+ alias_method :is_kind_of, :is_a_kind_of
30
+
31
+ def is_not_a_kind_of(expected_class, *args)
32
+ @context.assert_not_kind_of(expected_class, @value, *args)
33
+ end
34
+ alias_method :is_not_kind_of, :is_not_a_kind_of
35
+
36
+ def is_an_instance_of(expected_class, *args)
37
+ @context.assert_instance_of(expected_class, @value, *args)
38
+ end
39
+ alias_method :is_instance_of, :is_an_instance_of
40
+
41
+ def is_not_an_instance_of(expected_class, *args)
42
+ @context.assert_not_instance_of(expected_class, @value, *args)
43
+ end
44
+ alias_method :is_not_instance_of, :is_not_an_instance_of
45
+
46
+ def responds_to(expected_method_name, *args)
47
+ @context.assert_responds_to(expected_method_name, @value, *args)
48
+ end
49
+
50
+ def does_not_respond_to(expected_method_name, *args)
51
+ @context.assert_not_responds_to(expected_method_name, @value, *args)
52
+ end
53
+
54
+ def is_the_same_as(expected_object, *args)
55
+ @context.assert_same(expected_object, @value, *args)
56
+ end
57
+
58
+ def is_not_the_same_as(expected_object, *args)
59
+ @context.assert_not_same(expected_object, @value, *args)
60
+ end
61
+
62
+ def equals(expected_value, *args)
63
+ @context.assert_equal(expected_value, @value, *args)
64
+ end
65
+ alias_method :is_equal_to, :equals
66
+
67
+ def does_not_equal(expected_value, *args)
68
+ @context.assert_not_equal(expected_value, @value, *args)
69
+ end
70
+ alias_method :is_not_equal_to, :does_not_equal
71
+
72
+ def matches(expected_regex, *args)
73
+ @context.assert_match(expected_regex, @value, *args)
74
+ end
75
+
76
+ def does_not_match(expected_regex, *args)
77
+ @context.assert_not_match(expected_regex, @value, *args)
78
+ end
79
+
80
+ def is_empty(*args)
81
+ @context.assert_empty(@value, *args)
82
+ end
83
+
84
+ def is_not_empty(*args)
85
+ @context.assert_not_empty(@value, *args)
86
+ end
87
+
88
+ def includes(object, *args)
89
+ @context.assert_includes(object, @value, *args)
90
+ end
91
+
92
+ def does_not_include(object, *args)
93
+ @context.assert_not_includes(object, @value, *args)
94
+ end
95
+
96
+ def is_nil(*args)
97
+ @context.assert_nil(@value, *args)
98
+ end
99
+
100
+ def is_not_nil(*args)
101
+ @context.assert_not_nil(@value, *args)
102
+ end
103
+
104
+ def is_true(*args)
105
+ @context.assert_true(@value, *args)
106
+ end
107
+
108
+ def is_not_true(*args)
109
+ @context.assert_not_true(@value, *args)
110
+ end
111
+
112
+ def is_false(*args)
113
+ @context.assert_false(@value, *args)
114
+ end
115
+
116
+ def is_not_false(*args)
117
+ @context.assert_not_false(@value, *args)
118
+ end
119
+
120
+ def is_a_file(*args)
121
+ @context.assert_file_exists(@value, *args)
122
+ end
123
+
124
+ def is_not_a_file(*args)
125
+ @context.assert_not_file_exists(@value, *args)
126
+ end
127
+ end