mercadopago-custom-checkout 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +5 -5
  2. data/.gs/bin/rake +12 -8
  3. data/.gs/specifications/rake-10.5.0.gemspec +24 -28
  4. data/.tool-versions +1 -0
  5. data/lib/mercadopago/custom_checkout/version.rb +1 -1
  6. data/mercadopago-custom-checkout.gemspec +3 -3
  7. metadata +14 -125
  8. data/.gs/cache/faraday-0.9.2.gem +0 -0
  9. data/.gs/cache/minitest-5.9.0.gem +0 -0
  10. data/.gs/cache/multi_json-1.12.1.gem +0 -0
  11. data/.gs/cache/multipart-post-2.0.0.gem +0 -0
  12. data/.gs/gems/faraday-0.9.2/LICENSE.md +0 -20
  13. data/.gs/gems/faraday-0.9.2/README.md +0 -245
  14. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/em_http.rb +0 -237
  15. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/em_http_ssl_patch.rb +0 -56
  16. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/em_synchrony/parallel_manager.rb +0 -66
  17. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/em_synchrony.rb +0 -100
  18. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/excon.rb +0 -81
  19. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/httpclient.rb +0 -117
  20. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb +0 -130
  21. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/net_http_persistent.rb +0 -49
  22. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/patron.rb +0 -78
  23. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/rack.rb +0 -58
  24. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/test.rb +0 -162
  25. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/typhoeus.rb +0 -123
  26. data/.gs/gems/faraday-0.9.2/lib/faraday/adapter.rb +0 -46
  27. data/.gs/gems/faraday-0.9.2/lib/faraday/autoload.rb +0 -84
  28. data/.gs/gems/faraday-0.9.2/lib/faraday/connection.rb +0 -437
  29. data/.gs/gems/faraday-0.9.2/lib/faraday/error.rb +0 -53
  30. data/.gs/gems/faraday-0.9.2/lib/faraday/middleware.rb +0 -37
  31. data/.gs/gems/faraday-0.9.2/lib/faraday/options.rb +0 -359
  32. data/.gs/gems/faraday-0.9.2/lib/faraday/parameters.rb +0 -197
  33. data/.gs/gems/faraday-0.9.2/lib/faraday/rack_builder.rb +0 -213
  34. data/.gs/gems/faraday-0.9.2/lib/faraday/request/authorization.rb +0 -42
  35. data/.gs/gems/faraday-0.9.2/lib/faraday/request/basic_authentication.rb +0 -13
  36. data/.gs/gems/faraday-0.9.2/lib/faraday/request/instrumentation.rb +0 -36
  37. data/.gs/gems/faraday-0.9.2/lib/faraday/request/multipart.rb +0 -63
  38. data/.gs/gems/faraday-0.9.2/lib/faraday/request/retry.rb +0 -154
  39. data/.gs/gems/faraday-0.9.2/lib/faraday/request/token_authentication.rb +0 -15
  40. data/.gs/gems/faraday-0.9.2/lib/faraday/request/url_encoded.rb +0 -36
  41. data/.gs/gems/faraday-0.9.2/lib/faraday/request.rb +0 -92
  42. data/.gs/gems/faraday-0.9.2/lib/faraday/response/logger.rb +0 -59
  43. data/.gs/gems/faraday-0.9.2/lib/faraday/response/raise_error.rb +0 -21
  44. data/.gs/gems/faraday-0.9.2/lib/faraday/response.rb +0 -93
  45. data/.gs/gems/faraday-0.9.2/lib/faraday/upload_io.rb +0 -67
  46. data/.gs/gems/faraday-0.9.2/lib/faraday/utils.rb +0 -309
  47. data/.gs/gems/faraday-0.9.2/lib/faraday.rb +0 -268
  48. data/.gs/gems/minitest-5.9.0/.autotest +0 -34
  49. data/.gs/gems/minitest-5.9.0/History.rdoc +0 -1176
  50. data/.gs/gems/minitest-5.9.0/Manifest.txt +0 -26
  51. data/.gs/gems/minitest-5.9.0/README.rdoc +0 -656
  52. data/.gs/gems/minitest-5.9.0/Rakefile +0 -72
  53. data/.gs/gems/minitest-5.9.0/design_rationale.rb +0 -52
  54. data/.gs/gems/minitest-5.9.0/lib/hoe/minitest.rb +0 -26
  55. data/.gs/gems/minitest-5.9.0/lib/minitest/assertions.rb +0 -674
  56. data/.gs/gems/minitest-5.9.0/lib/minitest/autorun.rb +0 -13
  57. data/.gs/gems/minitest-5.9.0/lib/minitest/benchmark.rb +0 -424
  58. data/.gs/gems/minitest-5.9.0/lib/minitest/expectations.rb +0 -284
  59. data/.gs/gems/minitest-5.9.0/lib/minitest/hell.rb +0 -17
  60. data/.gs/gems/minitest-5.9.0/lib/minitest/mock.rb +0 -232
  61. data/.gs/gems/minitest-5.9.0/lib/minitest/parallel.rb +0 -69
  62. data/.gs/gems/minitest-5.9.0/lib/minitest/pride.rb +0 -4
  63. data/.gs/gems/minitest-5.9.0/lib/minitest/pride_plugin.rb +0 -142
  64. data/.gs/gems/minitest-5.9.0/lib/minitest/spec.rb +0 -331
  65. data/.gs/gems/minitest-5.9.0/lib/minitest/test.rb +0 -284
  66. data/.gs/gems/minitest-5.9.0/lib/minitest/unit.rb +0 -45
  67. data/.gs/gems/minitest-5.9.0/lib/minitest.rb +0 -815
  68. data/.gs/gems/minitest-5.9.0/test/minitest/metametameta.rb +0 -90
  69. data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_benchmark.rb +0 -137
  70. data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_mock.rb +0 -512
  71. data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_reporter.rb +0 -281
  72. data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_spec.rb +0 -967
  73. data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_test.rb +0 -1983
  74. data/.gs/gems/multi_json-1.12.1/CHANGELOG.md +0 -245
  75. data/.gs/gems/multi_json-1.12.1/CONTRIBUTING.md +0 -46
  76. data/.gs/gems/multi_json-1.12.1/LICENSE.md +0 -20
  77. data/.gs/gems/multi_json-1.12.1/README.md +0 -121
  78. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapter.rb +0 -49
  79. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapter_error.rb +0 -15
  80. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/gson.rb +0 -20
  81. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/jr_jackson.rb +0 -25
  82. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/json_common.rb +0 -23
  83. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/json_gem.rb +0 -11
  84. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/json_pure.rb +0 -11
  85. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/nsjsonserialization.rb +0 -32
  86. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/oj.rb +0 -25
  87. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/ok_json.rb +0 -23
  88. data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/yajl.rb +0 -19
  89. data/.gs/gems/multi_json-1.12.1/lib/multi_json/convertible_hash_keys.rb +0 -43
  90. data/.gs/gems/multi_json-1.12.1/lib/multi_json/options.rb +0 -39
  91. data/.gs/gems/multi_json-1.12.1/lib/multi_json/options_cache.rb +0 -29
  92. data/.gs/gems/multi_json-1.12.1/lib/multi_json/parse_error.rb +0 -17
  93. data/.gs/gems/multi_json-1.12.1/lib/multi_json/vendor/okjson.rb +0 -606
  94. data/.gs/gems/multi_json-1.12.1/lib/multi_json/version.rb +0 -17
  95. data/.gs/gems/multi_json-1.12.1/lib/multi_json.rb +0 -161
  96. data/.gs/gems/multi_json-1.12.1/multi_json.gemspec +0 -20
  97. data/.gs/gems/multipart-post-2.0.0/.gitignore +0 -6
  98. data/.gs/gems/multipart-post-2.0.0/.travis.yml +0 -7
  99. data/.gs/gems/multipart-post-2.0.0/Gemfile +0 -14
  100. data/.gs/gems/multipart-post-2.0.0/History.txt +0 -60
  101. data/.gs/gems/multipart-post-2.0.0/Manifest.txt +0 -9
  102. data/.gs/gems/multipart-post-2.0.0/README.md +0 -77
  103. data/.gs/gems/multipart-post-2.0.0/Rakefile +0 -9
  104. data/.gs/gems/multipart-post-2.0.0/lib/composite_io.rb +0 -108
  105. data/.gs/gems/multipart-post-2.0.0/lib/multipart_post.rb +0 -9
  106. data/.gs/gems/multipart-post-2.0.0/lib/multipartable.rb +0 -29
  107. data/.gs/gems/multipart-post-2.0.0/lib/net/http/post/multipart.rb +0 -27
  108. data/.gs/gems/multipart-post-2.0.0/lib/parts.rb +0 -96
  109. data/.gs/gems/multipart-post-2.0.0/multipart-post.gemspec +0 -22
  110. data/.gs/gems/multipart-post-2.0.0/test/multibyte.txt +0 -1
  111. data/.gs/gems/multipart-post-2.0.0/test/net/http/post/test_multipart.rb +0 -110
  112. data/.gs/gems/multipart-post-2.0.0/test/test_composite_io.rb +0 -115
  113. data/.gs/gems/multipart-post-2.0.0/test/test_parts.rb +0 -86
  114. data/.gs/specifications/faraday-0.9.2.gemspec +0 -31
  115. data/.gs/specifications/minitest-5.9.0.gemspec +0 -39
  116. data/.gs/specifications/multi_json-1.12.1.gemspec +0 -33
  117. data/.gs/specifications/multipart-post-2.0.0.gemspec +0 -22
  118. data/.ruby-version +0 -1
@@ -1,26 +0,0 @@
1
- .autotest
2
- History.rdoc
3
- Manifest.txt
4
- README.rdoc
5
- Rakefile
6
- design_rationale.rb
7
- lib/hoe/minitest.rb
8
- lib/minitest.rb
9
- lib/minitest/assertions.rb
10
- lib/minitest/autorun.rb
11
- lib/minitest/benchmark.rb
12
- lib/minitest/expectations.rb
13
- lib/minitest/hell.rb
14
- lib/minitest/mock.rb
15
- lib/minitest/parallel.rb
16
- lib/minitest/pride.rb
17
- lib/minitest/pride_plugin.rb
18
- lib/minitest/spec.rb
19
- lib/minitest/test.rb
20
- lib/minitest/unit.rb
21
- test/minitest/metametameta.rb
22
- test/minitest/test_minitest_benchmark.rb
23
- test/minitest/test_minitest_mock.rb
24
- test/minitest/test_minitest_reporter.rb
25
- test/minitest/test_minitest_spec.rb
26
- test/minitest/test_minitest_test.rb
@@ -1,656 +0,0 @@
1
- = minitest/{test,spec,mock,benchmark}
2
-
3
- home :: https://github.com/seattlerb/minitest
4
- bugs :: https://github.com/seattlerb/minitest/issues
5
- rdoc :: http://docs.seattlerb.org/minitest
6
- vim :: https://github.com/sunaku/vim-ruby-minitest
7
- emacs:: https://github.com/arthurnn/minitest-emacs
8
-
9
- == DESCRIPTION:
10
-
11
- minitest provides a complete suite of testing facilities supporting
12
- TDD, BDD, mocking, and benchmarking.
13
-
14
- "I had a class with Jim Weirich on testing last week and we were
15
- allowed to choose our testing frameworks. Kirk Haines and I were
16
- paired up and we cracked open the code for a few test
17
- frameworks...
18
-
19
- I MUST say that minitest is *very* readable / understandable
20
- compared to the 'other two' options we looked at. Nicely done and
21
- thank you for helping us keep our mental sanity."
22
-
23
- -- Wayne E. Seguin
24
-
25
- minitest/test is a small and incredibly fast unit testing framework.
26
- It provides a rich set of assertions to make your tests clean and
27
- readable.
28
-
29
- minitest/spec is a functionally complete spec engine. It hooks onto
30
- minitest/test and seamlessly bridges test assertions over to spec
31
- expectations.
32
-
33
- minitest/benchmark is an awesome way to assert the performance of your
34
- algorithms in a repeatable manner. Now you can assert that your newb
35
- co-worker doesn't replace your linear algorithm with an exponential
36
- one!
37
-
38
- minitest/mock by Steven Baker, is a beautifully tiny mock (and stub)
39
- object framework.
40
-
41
- minitest/pride shows pride in testing and adds coloring to your test
42
- output. I guess it is an example of how to write IO pipes too. :P
43
-
44
- minitest/test is meant to have a clean implementation for language
45
- implementors that need a minimal set of methods to bootstrap a working
46
- test suite. For example, there is no magic involved for test-case
47
- discovery.
48
-
49
- "Again, I can't praise enough the idea of a testing/specing
50
- framework that I can actually read in full in one sitting!"
51
-
52
- -- Piotr Szotkowski
53
-
54
- Comparing to rspec:
55
-
56
- rspec is a testing DSL. minitest is ruby.
57
-
58
- -- Adam Hawkins, "Bow Before MiniTest"
59
-
60
- minitest doesn't reinvent anything that ruby already provides, like:
61
- classes, modules, inheritance, methods. This means you only have to
62
- learn ruby to use minitest and all of your regular OO practices like
63
- extract-method refactorings still apply.
64
-
65
- == FEATURES/PROBLEMS:
66
-
67
- * minitest/autorun - the easy and explicit way to run all your tests.
68
- * minitest/test - a very fast, simple, and clean test system.
69
- * minitest/spec - a very fast, simple, and clean spec system.
70
- * minitest/mock - a simple and clean mock/stub system.
71
- * minitest/benchmark - an awesome way to assert your algorithm's performance.
72
- * minitest/pride - show your pride in testing!
73
- * Incredibly small and fast runner, but no bells and whistles.
74
- * Written by squishy human beings. Software can never be perfect. We will all eventually die.
75
-
76
- == RATIONALE:
77
-
78
- See design_rationale.rb to see how specs and tests work in minitest.
79
-
80
- == SYNOPSIS:
81
-
82
- Given that you'd like to test the following class:
83
-
84
- class Meme
85
- def i_can_has_cheezburger?
86
- "OHAI!"
87
- end
88
-
89
- def will_it_blend?
90
- "YES!"
91
- end
92
- end
93
-
94
- === Unit tests
95
-
96
- Define your tests as methods beginning with +test_+.
97
-
98
- require "minitest/autorun"
99
-
100
- class TestMeme < Minitest::Test
101
- def setup
102
- @meme = Meme.new
103
- end
104
-
105
- def test_that_kitty_can_eat
106
- assert_equal "OHAI!", @meme.i_can_has_cheezburger?
107
- end
108
-
109
- def test_that_it_will_not_blend
110
- refute_match /^no/i, @meme.will_it_blend?
111
- end
112
-
113
- def test_that_will_be_skipped
114
- skip "test this later"
115
- end
116
- end
117
-
118
- === Specs
119
-
120
- require "minitest/autorun"
121
-
122
- describe Meme do
123
- before do
124
- @meme = Meme.new
125
- end
126
-
127
- describe "when asked about cheeseburgers" do
128
- it "must respond positively" do
129
- @meme.i_can_has_cheezburger?.must_equal "OHAI!"
130
- end
131
- end
132
-
133
- describe "when asked about blending possibilities" do
134
- it "won't say no" do
135
- @meme.will_it_blend?.wont_match /^no/i
136
- end
137
- end
138
- end
139
-
140
- For matchers support check out:
141
-
142
- https://github.com/wojtekmach/minitest-matchers
143
- https://github.com/rmm5t/minitest-matchers_vaccine
144
-
145
- === Benchmarks
146
-
147
- Add benchmarks to your tests.
148
-
149
- # optionally run benchmarks, good for CI-only work!
150
- require "minitest/benchmark" if ENV["BENCH"]
151
-
152
- class TestMeme < Minitest::Benchmark
153
- # Override self.bench_range or default range is [1, 10, 100, 1_000, 10_000]
154
- def bench_my_algorithm
155
- assert_performance_linear 0.9999 do |n| # n is a range value
156
- @obj.my_algorithm(n)
157
- end
158
- end
159
- end
160
-
161
- Or add them to your specs. If you make benchmarks optional, you'll
162
- need to wrap your benchmarks in a conditional since the methods won't
163
- be defined. In minitest 5, the describe name needs to match
164
- <tt>/Bench(mark)?$/</tt>.
165
-
166
- describe "Meme Benchmark" do
167
- if ENV["BENCH"] then
168
- bench_performance_linear "my_algorithm", 0.9999 do |n|
169
- 100.times do
170
- @obj.my_algorithm(n)
171
- end
172
- end
173
- end
174
- end
175
-
176
- outputs something like:
177
-
178
- # Running benchmarks:
179
-
180
- TestBlah 100 1000 10000
181
- bench_my_algorithm 0.006167 0.079279 0.786993
182
- bench_other_algorithm 0.061679 0.792797 7.869932
183
-
184
- Output is tab-delimited to make it easy to paste into a spreadsheet.
185
-
186
- === Mocks
187
-
188
- Mocks and stubs defined using terminology by Fowler & Meszaros at
189
- http://www.martinfowler.com/bliki/TestDouble.html:
190
-
191
- "Mocks are pre-programmed with expectations which form a specification
192
- of the calls they are expected to receive. They can throw an exception
193
- if they receive a call they don't expect and are checked during
194
- verification to ensure they got all the calls they were expecting."
195
-
196
- class MemeAsker
197
- def initialize(meme)
198
- @meme = meme
199
- end
200
-
201
- def ask(question)
202
- method = question.tr(" ", "_") + "?"
203
- @meme.__send__(method)
204
- end
205
- end
206
-
207
- require "minitest/autorun"
208
-
209
- describe MemeAsker, :ask do
210
- describe "when passed an unpunctuated question" do
211
- it "should invoke the appropriate predicate method on the meme" do
212
- @meme = Minitest::Mock.new
213
- @meme_asker = MemeAsker.new @meme
214
- @meme.expect :will_it_blend?, :return_value
215
-
216
- @meme_asker.ask "will it blend"
217
-
218
- @meme.verify
219
- end
220
- end
221
- end
222
-
223
- **Multi-threading and Mocks**
224
-
225
- Minitest mocks do not support multi-threading if it works, fine, if it doesn't
226
- you can use regular ruby patterns and facilities like local variables. Here's
227
- an example of asserting that code inside a thread is run:
228
-
229
- def test_called_inside_thread
230
- called = false
231
- pr = Proc.new { called = true }
232
- thread = Thread.new(&pr)
233
- thread.join
234
- assert called, "proc not called"
235
- end
236
-
237
- === Stubs
238
-
239
- Mocks and stubs are defined using terminology by Fowler & Meszaros at
240
- http://www.martinfowler.com/bliki/TestDouble.html:
241
-
242
- "Stubs provide canned answers to calls made during the test".
243
-
244
- Minitest's stub method overrides a single method for the duration of
245
- the block.
246
-
247
- def test_stale_eh
248
- obj_under_test = Something.new
249
-
250
- refute obj_under_test.stale?
251
-
252
- Time.stub :now, Time.at(0) do # stub goes away once the block is done
253
- assert obj_under_test.stale?
254
- end
255
- end
256
-
257
- A note on stubbing: In order to stub a method, the method must
258
- actually exist prior to stubbing. Use a singleton method to create a
259
- new non-existing method:
260
-
261
- def obj_under_test.fake_method
262
- ...
263
- end
264
-
265
- === Running Your Tests
266
-
267
- Ideally, you'll use a rake task to run your tests, either piecemeal or
268
- all at once. Both rake and rails ship with rake tasks for running your
269
- tests. BUT! You don't have to:
270
-
271
- % ruby -Ilib:test test/minitest/test_minitest_test.rb
272
- Run options: --seed 37685
273
-
274
- # Running:
275
-
276
- ...................................................................... (etc)
277
-
278
- Finished in 0.107130s, 1446.8403 runs/s, 2959.0217 assertions/s.
279
-
280
- 155 runs, 317 assertions, 0 failures, 0 errors, 0 skips
281
-
282
- There are runtime options available, both from minitest itself, and also
283
- provided via plugins. To see them, simply run with +--help+:
284
-
285
- % ruby -Ilib:test test/minitest/test_minitest_test.rb --help
286
- minitest options:
287
- -h, --help Display this help.
288
- -s, --seed SEED Sets random seed
289
- -v, --verbose Verbose. Show progress processing files.
290
- -n, --name PATTERN Filter run on /pattern/ or string.
291
- -e, --exclude PATTERN Exclude /regexp/ or string from run.
292
-
293
- Known extensions: pride, autotest
294
- -p, --pride Pride. Show your testing pride!
295
- -a, --autotest Connect to autotest server.
296
-
297
- == Writing Extensions
298
-
299
- To define a plugin, add a file named minitest/XXX_plugin.rb to your
300
- project/gem. That file must be discoverable via ruby's LOAD_PATH (via
301
- rubygems or otherwise). Minitest will find and require that file using
302
- Gem.find_files. It will then try to call +plugin_XXX_init+ during
303
- startup. The option processor will also try to call +plugin_XXX_options+
304
- passing the OptionParser instance and the current options hash. This
305
- lets you register your own command-line options. Here's a totally
306
- bogus example:
307
-
308
- # minitest/bogus_plugin.rb:
309
-
310
- module Minitest
311
- def self.plugin_bogus_options(opts, options)
312
- opts.on "--myci", "Report results to my CI" do
313
- options[:myci] = true
314
- options[:myci_addr] = get_myci_addr
315
- options[:myci_port] = get_myci_port
316
- end
317
- end
318
-
319
- def self.plugin_bogus_init(options)
320
- self.reporter << MyCI.new(options) if options[:myci]
321
- end
322
- end
323
-
324
- === Adding custom reporters
325
-
326
- Minitest uses composite reporter to output test results using multiple
327
- reporter instances. You can add new reporters to the composite during
328
- the init_plugins phase. As we saw in +plugin_bonus_init+ above, you
329
- simply add your reporter instance to the composite via <tt><<</tt>.
330
-
331
- +AbstractReporter+ defines the API for reporters. You may subclass it
332
- and override any method you want to achieve your desired behavior.
333
-
334
- start :: Called when the run has started.
335
- record :: Called for each result, passed or otherwise.
336
- report :: Called at the end of the run.
337
- passed? :: Called to see if you detected any problems.
338
-
339
- Using our example above, here is how we might implement MyCI:
340
-
341
- # minitest/bogus_plugin.rb
342
-
343
- module Minitest
344
- class MyCI < AbstractReporter
345
- attr_accessor :results, :addr, :port
346
-
347
- def initialize options
348
- self.results = []
349
- self.addr = options[:myci_addr]
350
- self.port = options[:myci_port]
351
- end
352
-
353
- def record result
354
- self.results << result
355
- end
356
-
357
- def report
358
- CI.connect(addr, port).send_results self.results
359
- end
360
- end
361
-
362
- # code from above...
363
- end
364
-
365
- == FAQ
366
-
367
- === How to test SimpleDelegates?
368
-
369
- The following implementation and test:
370
-
371
- class Worker < SimpleDelegator
372
- def work
373
- end
374
- end
375
-
376
- describe Worker do
377
- before do
378
- @worker = Worker.new(Object.new)
379
- end
380
-
381
- it "must respond to work" do
382
- @worker.must_respond_to :work
383
- end
384
- end
385
-
386
- outputs a failure:
387
-
388
- 1) Failure:
389
- Worker#test_0001_must respond to work [bug11.rb:16]:
390
- Expected #<Object:0x007f9e7184f0a0> (Object) to respond to #work.
391
-
392
- Worker is a SimpleDelegate which in 1.9+ is a subclass of BasicObject.
393
- Expectations are put on Object (one level down) so the Worker
394
- (SimpleDelegate) hits +method_missing+ and delegates down to the
395
- +Object.new+ instance. That object doesn't respond to work so the test
396
- fails.
397
-
398
- You can bypass <tt>SimpleDelegate#method_missing</tt> by extending the worker
399
- with <tt>Minitest::Expectations</tt>. You can either do that in your setup at
400
- the instance level, like:
401
-
402
- before do
403
- @worker = Worker.new(Object.new)
404
- @worker.extend Minitest::Expectations
405
- end
406
-
407
- or you can extend the Worker class (within the test file!), like:
408
-
409
- class Worker
410
- include ::Minitest::Expectations
411
- end
412
-
413
- === How to share code across test classes?
414
-
415
- Use a module. That's exactly what they're for:
416
-
417
- module UsefulStuff
418
- def useful_method
419
- # ...
420
- end
421
- end
422
-
423
- describe Blah do
424
- include UsefulStuff
425
-
426
- def test_whatever
427
- # useful_method available here
428
- end
429
- end
430
-
431
- Remember, +describe+ simply creates test classes. It's just ruby at
432
- the end of the day and all your normal Good Ruby Rules (tm) apply. If
433
- you want to extend your test using setup/teardown via a module, just
434
- make sure you ALWAYS call super. before/after automatically call super
435
- for you, so make sure you don't do it twice.
436
-
437
- === Why am I seeing <tt>uninitialized constant MiniTest::Test (NameError)</tt>?
438
-
439
- Are you running the test with Bundler (e.g. via <tt>bundle exec</tt> )? If so,
440
- in order to require minitest, you must first add the <tt>gem 'minitest'</tt>
441
- to your Gemfile and run +bundle+. Once it's installed, you should be
442
- able to require minitest and run your tests.
443
-
444
- == Prominent Projects using Minitest:
445
-
446
- * arel
447
- * journey
448
- * mime-types
449
- * nokogiri
450
- * rails (active_support et al)
451
- * rake
452
- * rdoc
453
- * ...and of course, everything from seattle.rb...
454
-
455
- == Known Extensions:
456
-
457
- capybara_minitest_spec :: Bridge between Capybara RSpec matchers and
458
- Minitest::Spec expectations (e.g.
459
- <tt>page.must_have_content("Title")</tt>).
460
- color_pound_spec_reporter :: Test names print Ruby Object types in color with
461
- your Minitest Spec style tests.
462
- minispec-metadata :: Metadata for describe/it blocks & CLI tag filter.
463
- E.g. <tt>it "requires JS driver", js: true do</tt> &
464
- <tt>ruby test.rb --tag js</tt> runs tests tagged :js.
465
- minitest-around :: Around block for minitest. An alternative to
466
- setup/teardown dance.
467
- minitest-assert_errors :: Adds Minitest assertions to test for errors raised
468
- or not raised by Minitest itself.
469
- minitest-autotest :: autotest is a continous testing facility meant to
470
- be used during development.
471
- minitest-bacon :: minitest-bacon extends minitest with bacon-like
472
- functionality.
473
- minitest-bang :: Adds support for RSpec-style let! to immediately
474
- invoke let statements before each test.
475
- minitest-bisect :: Helps you isolate and debug random test failures.
476
- minitest-blink1_reporter :: Display test results with a Blink1.
477
- minitest-capistrano :: Assertions and expectations for testing
478
- Capistrano recipes.
479
- minitest-capybara :: Capybara matchers support for minitest unit and
480
- spec.
481
- minitest-chef-handler :: Run Minitest suites as Chef report handlers
482
- minitest-ci :: CI reporter plugin for Minitest.
483
- minitest-context :: Defines contexts for code reuse in Minitest
484
- specs that share common expectations.
485
- minitest-debugger :: Wraps assert so failed assertions drop into
486
- the ruby debugger.
487
- minitest-display :: Patches Minitest to allow for an easily
488
- configurable output.
489
- minitest-documentation :: Minimal documentation format inspired by rspec's.
490
- minitest-doc_reporter :: Detailed output inspired by rspec's documentation
491
- format.
492
- minitest-emoji :: Print out emoji for your test passes, fails, and
493
- skips.
494
- minitest-english :: Semantically symmetric aliases for assertions and
495
- expectations.
496
- minitest-excludes :: Clean API for excluding certain tests you
497
- don't want to run under certain conditions.
498
- minitest-fail-fast :: Reimplements RSpec's "fail fast" feature
499
- minitest-filecontent :: Support unit tests with expectation results in files.
500
- Differing results will be stored again in files.
501
- minitest-filesystem :: Adds assertion and expectation to help testing
502
- filesystem contents.
503
- minitest-firemock :: Makes your Minitest mocks more resilient.
504
- minitest-focus :: Focus on one test at a time.
505
- minitest-gcstats :: A minitest plugin that adds a report of the top
506
- tests by number of objects allocated.
507
- minitest-great_expectations :: Generally useful additions to minitest's
508
- assertions and expectations.
509
- minitest-growl :: Test notifier for minitest via growl.
510
- minitest-happy :: GLOBALLY ACTIVATE MINITEST PRIDE! RAWR!
511
- minitest-have_tag :: Adds Minitest assertions to test for the existence of
512
- HTML tags, including contents, within a provided string.
513
- minitest-hooks :: Around and before_all/after_all/around_all hooks
514
- minitest-hyper :: Pretty, single-page HTML reports for your Minitest runs
515
- minitest-implicit-subject :: Implicit declaration of the test subject.
516
- minitest-instrument :: Instrument ActiveSupport::Notifications when
517
- test method is executed.
518
- minitest-instrument-db :: Store information about speed of test execution
519
- provided by minitest-instrument in database.
520
- minitest-junit :: JUnit-style XML reporter for minitest.
521
- minitest-libnotify :: Test notifier for minitest via libnotify.
522
- minitest-line :: Run test at line number.
523
- minitest-logger :: Define assert_log and enable minitest to test log messages.
524
- Supports Logger and Log4r::Logger.
525
- minitest-macruby :: Provides extensions to minitest for macruby UI
526
- testing.
527
- minitest-matchers :: Adds support for RSpec-style matchers to
528
- minitest.
529
- minitest-matchers_vaccine :: Adds assertions that adhere to the matcher spec,
530
- but without any expectation infections.
531
- minitest-metadata :: Annotate tests with metadata (key-value).
532
- minitest-mongoid :: Mongoid assertion matchers for Minitest.
533
- minitest-must_not :: Provides must_not as an alias for wont in
534
- Minitest.
535
- minitest-optional_retry :: Automatically retry failed test to help with flakiness.
536
- minitest-osx :: Reporter for the Mac OS X notification center.
537
- minitest-parallel_fork :: Fork-based parallelization
538
- minitest-parallel-db :: Run tests in parallel with a single database.
539
- minitest-power_assert :: PowerAssert for Minitest.
540
- minitest-predicates :: Adds support for .predicate? methods.
541
- minitest-profile :: List the 10 slowest tests in your suite.
542
- minitest-rails :: Minitest integration for Rails 3.x.
543
- minitest-rails-capybara :: Capybara integration for Minitest::Rails.
544
- minitest-reporters :: Create customizable Minitest output formats.
545
- minitest-rg :: Colored red/green output for Minitest.
546
- minitest-rspec_mocks :: Use RSpec Mocks with Minitest.
547
- minitest-server :: minitest-server provides a client/server setup
548
- with your minitest process, allowing your test
549
- run to send its results directly to a handler.
550
- minitest-sequel :: Minitest assertions to speed-up development and
551
- testing of Ruby Sequel database setups.
552
- minitest-shared_description :: Support for shared specs and shared spec
553
- subclasses
554
- minitest-should_syntax :: RSpec-style <tt>x.should == y</tt> assertions for
555
- Minitest.
556
- minitest-shouldify :: Adding all manner of shoulds to Minitest (bad
557
- idea)
558
- minitest-snail :: Print a list of tests that take too long
559
- minitest-spec-context :: Provides rspec-ish context method to
560
- Minitest::Spec.
561
- minitest-spec-expect :: Expect syntax for Minitest::Spec (e.g.
562
- expect(sequences).to_include :celery_man).
563
- minitest-spec-magic :: Minitest::Spec extensions for Rails and beyond.
564
- minitest-spec-rails :: Drop in Minitest::Spec superclass for
565
- ActiveSupport::TestCase.
566
- minitest-sprint :: Runs (Get it? It's fast!) your tests and makes
567
- it easier to rerun individual failures.
568
- minitest-stately :: Find leaking state between tests
569
- minitest-stub_any_instance :: Stub any instance of a method on the given class
570
- for the duration of a block.
571
- minitest-stub-const :: Stub constants for the duration of a block.
572
- minitest-tags :: Add tags for minitest.
573
- minitest-unordered :: Adds a new assertion to minitest for checking the
574
- contents of a collection, ignoring element order.
575
- minitest-vcr :: Automatic cassette managment with Minitest::Spec
576
- and VCR.
577
- minitest_owrapper :: Get tests results as a TestResult object.
578
- minitest_should :: Shoulda style syntax for minitest test::unit.
579
- minitest_tu_shim :: Bridges between test/unit and minitest.
580
- mongoid-minitest :: Minitest matchers for Mongoid.
581
- pry-rescue :: A pry plugin w/ minitest support. See
582
- pry-rescue/minitest.rb.
583
- rspec2minitest :: Easily translate any RSpec matchers to Minitest
584
- assertions and expectations.
585
-
586
- == Unknown Extensions:
587
-
588
- Authors... Please send me a pull request with a description of your minitest extension.
589
-
590
- * assay-minitest
591
- * detroit-minitest
592
- * em-minitest-spec
593
- * flexmock-minitest
594
- * guard-minitest
595
- * guard-minitest-decisiv
596
- * minitest-activemodel
597
- * minitest-ar-assertions
598
- * minitest-capybara-unit
599
- * minitest-colorer
600
- * minitest-deluxe
601
- * minitest-extra-assertions
602
- * minitest-rails-shoulda
603
- * minitest-spec
604
- * minitest-spec-should
605
- * minitest-sugar
606
- * spork-minitest
607
-
608
- == REQUIREMENTS:
609
-
610
- * Ruby 1.8.7+. No magic is involved. I hope.
611
- * NOTE: 1.8 and 1.9 will be dropped in minitest 6+.
612
-
613
- == INSTALL:
614
-
615
- sudo gem install minitest
616
-
617
- On 1.9, you already have it. To get newer candy you can still install
618
- the gem, and then requiring "minitest/autorun" should automatically
619
- pull it in. If not, you'll need to do it yourself:
620
-
621
- gem "minitest" # ensures you"re using the gem, and not the built-in MT
622
- require "minitest/autorun"
623
-
624
- # ... usual testing stuffs ...
625
-
626
- DO NOTE: There is a serious problem with the way that ruby 1.9/2.0
627
- packages their own gems. They install a gem specification file, but
628
- don't install the gem contents in the gem path. This messes up
629
- Gem.find_files and many other things (gem which, gem contents, etc).
630
-
631
- Just install minitest as a gem for real and you'll be happier.
632
-
633
- == LICENSE:
634
-
635
- (The MIT License)
636
-
637
- Copyright (c) Ryan Davis, seattle.rb
638
-
639
- Permission is hereby granted, free of charge, to any person obtaining
640
- a copy of this software and associated documentation files (the
641
- 'Software'), to deal in the Software without restriction, including
642
- without limitation the rights to use, copy, modify, merge, publish,
643
- distribute, sublicense, and/or sell copies of the Software, and to
644
- permit persons to whom the Software is furnished to do so, subject to
645
- the following conditions:
646
-
647
- The above copyright notice and this permission notice shall be
648
- included in all copies or substantial portions of the Software.
649
-
650
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
651
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
652
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
653
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
654
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
655
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
656
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.