dfect 1.1.0 → 2.0.0

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 (66) hide show
  1. data/CREDITS +2 -2
  2. data/HISTORY +306 -0
  3. data/INSTALL +35 -0
  4. data/README +95 -0
  5. data/USAGE +393 -0
  6. data/doc/api/Dfect.html +3179 -0
  7. data/doc/api/Object.html +107 -0
  8. data/doc/api/_index.html +107 -0
  9. data/doc/api/class_list.html +36 -0
  10. data/doc/api/css/common.css +1 -0
  11. data/doc/api/css/full_list.css +50 -0
  12. data/doc/api/css/style.css +268 -0
  13. data/doc/api/file.LICENSE.html +73 -0
  14. data/doc/api/file_list.html +38 -0
  15. data/doc/api/frames.html +13 -0
  16. data/doc/api/index.html +72 -13
  17. data/doc/api/js/app.js +99 -0
  18. data/doc/api/js/full_list.js +106 -0
  19. data/doc/api/js/{jquery-1.3.2.min.js → jquery.js} +0 -0
  20. data/doc/api/method_list.html +339 -0
  21. data/doc/api/top-level-namespace.html +87 -0
  22. data/doc/index.erb +16 -9
  23. data/doc/index.html +1057 -726
  24. data/lib/dfect.rb +431 -284
  25. data/lib/dfect/auto.rb +2 -6
  26. data/lib/dfect/inochi.rb +48 -0
  27. data/lib/dfect/inochi.yaml +75 -0
  28. data/lib/dfect/mini.rb +1 -5
  29. data/lib/dfect/spec.rb +6 -13
  30. data/lib/dfect/unit.rb +21 -33
  31. data/test/dfect/inochi_test.rb +17 -0
  32. data/test/{dfect.rb → dfect_test.rb} +167 -7
  33. data/test/runner +25 -0
  34. data/test/test_helper.rb +1 -0
  35. metadata +43 -55
  36. data/doc/api/apple-touch-icon.png +0 -0
  37. data/doc/api/classes/Class.html +0 -73
  38. data/doc/api/classes/Dfect.html +0 -1245
  39. data/doc/api/classes/Kernel.html +0 -322
  40. data/doc/api/classes/Object.html +0 -72
  41. data/doc/api/created.rid +0 -1
  42. data/doc/api/css/main.css +0 -263
  43. data/doc/api/css/panel.css +0 -383
  44. data/doc/api/css/reset.css +0 -53
  45. data/doc/api/favicon.ico +0 -0
  46. data/doc/api/files/CREDITS.html +0 -65
  47. data/doc/api/files/LICENSE.html +0 -76
  48. data/doc/api/files/lib/dfect/auto_rb.html +0 -80
  49. data/doc/api/files/lib/dfect/mini_rb.html +0 -77
  50. data/doc/api/files/lib/dfect/spec_rb.html +0 -73
  51. data/doc/api/files/lib/dfect/unit_rb.html +0 -73
  52. data/doc/api/files/lib/dfect_rb.html +0 -74
  53. data/doc/api/i/arrows.png +0 -0
  54. data/doc/api/i/results_bg.png +0 -0
  55. data/doc/api/i/tree_bg.png +0 -0
  56. data/doc/api/js/jquery-effect.js +0 -593
  57. data/doc/api/js/main.js +0 -22
  58. data/doc/api/js/searchdoc.js +0 -628
  59. data/doc/api/panel/index.html +0 -71
  60. data/doc/api/panel/search_index.js +0 -1
  61. data/doc/api/panel/tree.js +0 -1
  62. data/doc/history.erb +0 -161
  63. data/doc/intro.erb +0 -104
  64. data/doc/setup.erb +0 -107
  65. data/doc/usage.erb +0 -310
  66. data/rakefile +0 -21
data/doc/usage.erb DELETED
@@ -1,310 +0,0 @@
1
- %#--
2
- %# Copyright protects this work.
3
- %# See LICENSE file for details.
4
- %#++
5
-
6
- % dfect_api = 'api/classes/Dfect.html'
7
-
8
-
9
- %|chapter "Usage"
10
-
11
- Begin by loading <%= $project %> into your program:
12
-
13
- %|code :ruby
14
- require 'rubygems' # only necessary if you are using Ruby 1.8
15
- require 'dfect'
16
-
17
- You now have access to the [`Dfect` module](<%= dfect_api %>), which provides methods that can be mixed-in or called directly, according to your preference:
18
-
19
- %|code :ruby
20
- Dfect.D "hello" do # D() is a class method
21
- puts "world"
22
- end
23
-
24
- # the above is same as:
25
-
26
- include Dfect # mix-in the Dfect API
27
-
28
- D "hello" do # D() is an instance method
29
- puts "world"
30
- end
31
-
32
- The following sections explain these provided methods in detail. If you are impatient, you can skip to <%= xref "A sample unit test" %> for an illustrative example.
33
-
34
-
35
- %|section "Assertions"
36
-
37
- The following methods accept a block parameter and assert something about the result of executing that block. They also accept an optional message, which is shown in <%= xref "Failures", "failure reports" %> if they fail.
38
-
39
- See the [API documentation](<%= api_url %>) for details and examples.
40
-
41
- %|table
42
- %|thead
43
- %|tr
44
- %|th
45
- Method
46
- %|th
47
- Description
48
- %|tbody
49
- %|tr
50
- %|td
51
- T
52
- %|td
53
- assert true (not `nil` and not `false`)
54
- %|tr
55
- %|td
56
- F
57
- %|td
58
- assert not true (`nil` or `false`)
59
- %|tr
60
- %|td
61
- E
62
- %|td
63
- assert that an execption is raised
64
- %|tr
65
- %|td
66
- C
67
- %|td
68
- assert that a symbol is thrown
69
-
70
-
71
- %|paragraph "Negation"
72
-
73
- These methods are the *opposite* of <%= xref "Assertions", "normal assertions" %>.
74
-
75
- %|table
76
- %|thead
77
- %|tr
78
- %|th
79
- Method
80
- %|th
81
- Description
82
- %|tbody
83
- %|tr
84
- %|td
85
- T!
86
- %|td
87
- same as F
88
- %|tr
89
- %|td
90
- F!
91
- %|td
92
- same as T
93
- %|tr
94
- %|td
95
- E!
96
- %|td
97
- assert that an exception is *not* raised
98
- %|tr
99
- %|td
100
- C!
101
- %|td
102
- assert that a symbol is *not* thrown
103
-
104
-
105
- %|paragraph "Sampling"
106
-
107
- These methods allow you to *check the outcome* of an <%= xref "Assertions", "assertion" %> without including the assertion in the execution report.
108
-
109
- %|table
110
- %|thead
111
- %|tr
112
- %|th
113
- Method
114
- %|th
115
- Description
116
- %|tbody
117
- %|tr
118
- %|td
119
- T?
120
- %|td
121
- returns `true` if T passes; `false` otherwise
122
- %|tr
123
- %|td
124
- F?
125
- %|td
126
- returns `true` if F passes; `false` otherwise
127
- %|tr
128
- %|td
129
- E?
130
- %|td
131
- returns `true` if E passes; `false` otherwise
132
- %|tr
133
- %|td
134
- C?
135
- %|td
136
- returns `true` if C passes; `false` otherwise
137
-
138
-
139
- %|section "Failures"
140
-
141
- When an assertion fails, details about the failure will be shown:
142
-
143
- - fail: block must yield true (!nil && !false)
144
- code: |-
145
- [12..22] in test/simple.rb
146
- 12
147
- 13 D "with more nested tests" do
148
- 14 x = 5
149
- 15
150
- 16 T { x > 2 } # passes
151
- => 17 F { x > 2 } # fails
152
- 18 E { x.hello } # passes
153
- 19 end
154
- 20 end
155
- 21
156
- 22 # equivalent of before(:each) or setup()
157
- vars:
158
- x: 5
159
- y: 83
160
- call:
161
- - test/simple.rb:17
162
- - test/simple.rb:3
163
-
164
- You will then be placed into a debugger to investigate the failure if the `:debug` option is enabled in [`Dfect.options`](<%= dfect_api %>).
165
-
166
- Details about all assertion failures and a trace of all tests executed are stored by <%= $project %> and provided by the [`Dfect.report`](<%= dfect_api %>) method.
167
-
168
-
169
- %|section "Tests"
170
-
171
- The [`D()` method](<%= dfect_api %>) defines a new **test**, which is analagous to the `describe()` environment provided by BDD frameworks like RSpec.
172
-
173
- A test may also contain nested tests.
174
-
175
- %|code :ruby
176
- D "outer test" do
177
- # assertions and logic here
178
-
179
- D "inner test" do
180
- # more assertions and logic here
181
- end
182
- end
183
-
184
-
185
- %|section "Hooks"
186
-
187
- The [`D()` method](<%= dfect_api %>) provides several entry points (hooks) into the test execution process:
188
-
189
- %|code :ruby
190
- D "outer test" do
191
- D .< { puts "before each nested test" }
192
- D .> { puts "after each nested test" }
193
- D .<< { puts "before all nested tests" }
194
- D .>> { puts "after all nested tests" }
195
-
196
- D "inner test" do
197
- # assertions and logic here
198
- end
199
- end
200
-
201
- A hook method may be called multiple times. Each call registers additional logic to execute during the hook:
202
-
203
- %|code :ruby
204
- D .< { puts "do something" }
205
- D .< { puts "do something more!" }
206
-
207
-
208
- %|section "Insulation"
209
-
210
- Use the singleton class of a temporary object to shield your test logic from Ruby's global environment, the code being tested, and from other tests:
211
-
212
- %|code :ruby
213
- class << Object.new
214
- # your test logic here
215
- end
216
-
217
- Inside this insulated environment, you are free to:
218
- * mix-in any modules your test logic needs
219
- * define your own constants, methods, and classes
220
-
221
- For example:
222
-
223
- %|code :ruby
224
- class << Object.new
225
- include SomeModule
226
- extend AnotherModule
227
-
228
- YOUR_CONSTANT = 123
229
-
230
- D "your tests here" do
231
- # your test logic here
232
-
233
- your_helper_method
234
- end
235
-
236
- def self.your_helper_method
237
- # your helper logic here
238
-
239
- helper = YourHelperClass.new
240
- helper.do_something_helpful
241
-
242
- T { 2 + 2 != 5 }
243
- end
244
-
245
- class YourHelperClass
246
- # your helper logic here
247
- end
248
- end
249
-
250
-
251
- %|section "Execution"
252
-
253
- You can configure test execution using:
254
-
255
- %|code :ruby
256
- Dfect.options = your_options_hash
257
-
258
- You can execute all tests defined thus far using:
259
-
260
- %|code :ruby
261
- Dfect.run
262
-
263
- You can stop this execution at any time using:
264
-
265
- %|code :ruby
266
- Dfect.stop
267
-
268
- You can view the results of execution using:
269
-
270
- %|code :ruby
271
- puts Dfect.report.to_yaml
272
-
273
- See the [API documentation](<%= api_url %>) for details and examples.
274
-
275
-
276
- %|section "Automatic test execution"
277
-
278
- %|code :ruby
279
- require 'rubygems' # only necessary if you are using Ruby 1.8
280
- require 'dfect/auto' # <== notice the "auto"
281
-
282
- The above code will mix-in the `Dfect` module into your program and will execute all tests defined by your program before it terminates.
283
-
284
-
285
- %|section "Reporting"
286
-
287
- You can insert status messages, which can be arbitrary Ruby objects, into the execution report using the `Dfect::S()` method.
288
-
289
- See the [API documentation](<%= api_url %>) for details and examples.
290
-
291
-
292
- %|section "Emulation"
293
-
294
- Dfect provides emulation layers for several popular testing libraries:
295
-
296
- * <tt>dfect/unit</tt> --- Test::Unit
297
- * <tt>dfect/mini</tt> --- Minitest
298
- * <tt>dfect/spec</tt> --- RSpec
299
-
300
- Simply `require()` one of these emulation layers into your test suite and you can write your tests using the familiar syntax of that testing library.
301
-
302
- See the [API documentation](<%= api_url %>) for details and examples.
303
-
304
-
305
- %|example! "A sample unit test"
306
-
307
- The following code is from Dfect's very own test suite.
308
-
309
- %|code :ruby
310
- %< "../test/dfect.rb"
data/rakefile DELETED
@@ -1,21 +0,0 @@
1
- #--
2
- # Copyright protects this work.
3
- # See LICENSE file for details.
4
- #++
5
-
6
- require 'rubygems'
7
- gem 'inochi', '~> 1'
8
- require 'inochi'
9
-
10
- Inochi.init :Dfect,
11
- :version => '1.1.0',
12
- :release => '2009-10-27',
13
- :website => 'http://snk.tuxfamily.org/lib/dfect/',
14
- :tagline => 'Assertion testing library for Ruby'
15
-
16
- Inochi.rake :Dfect,
17
- :test_with => :dfect,
18
- :rubyforge_project => 'sunaku',
19
- :upload_target => File.expand_path('~/www/lib/dfect/'),
20
- :upload_delete => true,
21
- :inochi_consumer => false