mofo 0.2.2 → 0.2.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.
- data/CHANGELOG +6 -0
- data/Manifest.txt +55 -0
- data/Rakefile +32 -0
- data/init.rb +2 -0
- data/lib/microformat.rb +39 -6
- data/lib/mofo/hentry.rb +4 -0
- data/site/index.html +382 -0
- data/site/mofo-logo.png +0 -0
- data/site/mootools.v1.00.js +2 -0
- data/site/style.css +159 -0
- data/test/base_url_test.rb +22 -0
- data/test/fixtures/corkd.html +1 -1
- data/test/hatom_test.rb +1 -1
- data/test/hreview_test.rb +4 -3
- data/test/include_pattern_test.rb +1 -1
- data/test/test_helper.rb +17 -6
- metadata +63 -115
- data/test/format_test.rb +0 -230
- data/vendor/testspec-0.3.0/ChangeLog +0 -177
- data/vendor/testspec-0.3.0/README +0 -289
- data/vendor/testspec-0.3.0/ROADMAP +0 -1
- data/vendor/testspec-0.3.0/Rakefile +0 -151
- data/vendor/testspec-0.3.0/SPECS +0 -108
- data/vendor/testspec-0.3.0/TODO +0 -2
- data/vendor/testspec-0.3.0/bin/specrb +0 -104
- data/vendor/testspec-0.3.0/doc/classes/Kernel.html +0 -140
- data/vendor/testspec-0.3.0/doc/classes/Object.html +0 -155
- data/vendor/testspec-0.3.0/doc/classes/Test/Spec.html +0 -128
- data/vendor/testspec-0.3.0/doc/classes/Test/Spec/CustomShould.html +0 -236
- data/vendor/testspec-0.3.0/doc/classes/Test/Spec/DefinitionError.html +0 -111
- data/vendor/testspec-0.3.0/doc/classes/Test/Spec/Should.html +0 -884
- data/vendor/testspec-0.3.0/doc/classes/Test/Spec/ShouldNot.html +0 -487
- data/vendor/testspec-0.3.0/doc/classes/Test/Spec/TestCase.html +0 -220
- data/vendor/testspec-0.3.0/doc/classes/Test/Spec/TestCase/ClassMethods.html +0 -318
- data/vendor/testspec-0.3.0/doc/classes/Test/Spec/TestCase/InstanceMethods.html +0 -195
- data/vendor/testspec-0.3.0/doc/classes/Test/Unit/UI/RDox/TestRunner.html +0 -222
- data/vendor/testspec-0.3.0/doc/classes/Test/Unit/UI/SpecDox/TestRunner.html +0 -476
- data/vendor/testspec-0.3.0/doc/created.rid +0 -1
- data/vendor/testspec-0.3.0/doc/files/README.html +0 -516
- data/vendor/testspec-0.3.0/doc/files/ROADMAP.html +0 -109
- data/vendor/testspec-0.3.0/doc/files/SPECS.html +0 -386
- data/vendor/testspec-0.3.0/doc/files/lib/test/spec/dox_rb.html +0 -108
- data/vendor/testspec-0.3.0/doc/files/lib/test/spec/rdox_rb.html +0 -108
- data/vendor/testspec-0.3.0/doc/files/lib/test/spec/should-output_rb.html +0 -115
- data/vendor/testspec-0.3.0/doc/files/lib/test/spec_rb.html +0 -123
- data/vendor/testspec-0.3.0/doc/fr_class_index.html +0 -38
- data/vendor/testspec-0.3.0/doc/fr_file_index.html +0 -33
- data/vendor/testspec-0.3.0/doc/fr_method_index.html +0 -102
- data/vendor/testspec-0.3.0/doc/index.html +0 -24
- data/vendor/testspec-0.3.0/doc/rdoc-style.css +0 -208
- data/vendor/testspec-0.3.0/examples/stack.rb +0 -38
- data/vendor/testspec-0.3.0/examples/stack_spec.rb +0 -119
- data/vendor/testspec-0.3.0/lib/test/spec.rb +0 -490
- data/vendor/testspec-0.3.0/lib/test/spec/dox.rb +0 -122
- data/vendor/testspec-0.3.0/lib/test/spec/rdox.rb +0 -25
- data/vendor/testspec-0.3.0/lib/test/spec/should-output.rb +0 -49
- data/vendor/testspec-0.3.0/test/spec_dox.rb +0 -39
- data/vendor/testspec-0.3.0/test/spec_flexmock.rb +0 -210
- data/vendor/testspec-0.3.0/test/spec_mocha.rb +0 -118
- data/vendor/testspec-0.3.0/test/spec_nestedcontexts.rb +0 -26
- data/vendor/testspec-0.3.0/test/spec_should-output.rb +0 -26
- data/vendor/testspec-0.3.0/test/spec_testspec.rb +0 -522
- data/vendor/testspec-0.3.0/test/spec_testspec_order.rb +0 -26
- data/vendor/testspec-0.3.0/test/test_testunit.rb +0 -21
@@ -1 +0,0 @@
|
|
1
|
-
Wed Jan 24 12:13:34 CET 2007
|
@@ -1,516 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
-
<head>
|
8
|
-
<title>File: README</title>
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
-
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
12
|
-
<script type="text/javascript">
|
13
|
-
// <![CDATA[
|
14
|
-
|
15
|
-
function popupCode( url ) {
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
-
}
|
18
|
-
|
19
|
-
function toggleCode( id ) {
|
20
|
-
if ( document.getElementById )
|
21
|
-
elem = document.getElementById( id );
|
22
|
-
else if ( document.all )
|
23
|
-
elem = eval( "document.all." + id );
|
24
|
-
else
|
25
|
-
return false;
|
26
|
-
|
27
|
-
elemStyle = elem.style;
|
28
|
-
|
29
|
-
if ( elemStyle.display != "block" ) {
|
30
|
-
elemStyle.display = "block"
|
31
|
-
} else {
|
32
|
-
elemStyle.display = "none"
|
33
|
-
}
|
34
|
-
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
|
38
|
-
// Make codeblocks hidden by default
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
-
|
41
|
-
// ]]>
|
42
|
-
</script>
|
43
|
-
|
44
|
-
</head>
|
45
|
-
<body>
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
<div id="fileHeader">
|
50
|
-
<h1>README</h1>
|
51
|
-
<table class="header-table">
|
52
|
-
<tr class="top-aligned-row">
|
53
|
-
<td><strong>Path:</strong></td>
|
54
|
-
<td>README
|
55
|
-
</td>
|
56
|
-
</tr>
|
57
|
-
<tr class="top-aligned-row">
|
58
|
-
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>Wed Jan 24 12:13:27 CET 2007</td>
|
60
|
-
</tr>
|
61
|
-
</table>
|
62
|
-
</div>
|
63
|
-
<!-- banner header -->
|
64
|
-
|
65
|
-
<div id="bodyContent">
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
<div id="contextContent">
|
70
|
-
|
71
|
-
<div id="description">
|
72
|
-
<h1>test/spec, a BDD interface for Test::Unit</h1>
|
73
|
-
<p>
|
74
|
-
Copyright (C) 2006, 2007 Christian Neukirchen <<a
|
75
|
-
href="mailto:chneukirchen@gmail.com">chneukirchen@gmail.com</a>>
|
76
|
-
</p>
|
77
|
-
<h2>What is test/spec?</h2>
|
78
|
-
<p>
|
79
|
-
test/spec layers an RSpec-inspired interface on top of Test::Unit, so you
|
80
|
-
can mix TDD and BDD (Behavior-Driven Development).
|
81
|
-
</p>
|
82
|
-
<p>
|
83
|
-
test/spec is a clean-room implementation that maps most kinds of Test::Unit
|
84
|
-
assertions to a `should’-like syntax.
|
85
|
-
</p>
|
86
|
-
<p>
|
87
|
-
Consider this Test::Unit test case:
|
88
|
-
</p>
|
89
|
-
<pre>
|
90
|
-
class TestFoo < Test::Unit::TestCase
|
91
|
-
def test_should_bar
|
92
|
-
assert_equal 5, 2 + 3
|
93
|
-
end
|
94
|
-
end
|
95
|
-
</pre>
|
96
|
-
<p>
|
97
|
-
In test/spec, it looks like this:
|
98
|
-
</p>
|
99
|
-
<pre>
|
100
|
-
require 'test/spec'
|
101
|
-
|
102
|
-
context "Foo" do
|
103
|
-
specify "should bar" do
|
104
|
-
(2 + 3).should.equal 5
|
105
|
-
end
|
106
|
-
end
|
107
|
-
</pre>
|
108
|
-
<p>
|
109
|
-
test/spec does not include a mocking/stubbing-framework; use whichever you
|
110
|
-
like to. test/spec has been tested successfully with FlexMock and Mocha.
|
111
|
-
</p>
|
112
|
-
<p>
|
113
|
-
test/spec has no dependencies outside Ruby 1.8.
|
114
|
-
</p>
|
115
|
-
<h2>Mixing test/spec and test/unit</h2>
|
116
|
-
<p>
|
117
|
-
test/spec and Test::Unit contexts/test cases can be intermixed freely, run
|
118
|
-
in the same test and live in the same files. You can just add them to your
|
119
|
-
Rake::TestTask, too. test/spec allows you to leverage your full existing
|
120
|
-
Test::Unit infrastructure.
|
121
|
-
</p>
|
122
|
-
<p>
|
123
|
-
test/spec does not change Test::Unit with the exception of monkey-patching
|
124
|
-
Test::Unit::TestSuite to order the test cases before running them. (This
|
125
|
-
should not do any harm, but if you know a way around it, please tell me.)
|
126
|
-
</p>
|
127
|
-
<p>
|
128
|
-
test/spec adds two global methods, <a
|
129
|
-
href="../classes/Object.html#M000001">Object#should</a> and <a
|
130
|
-
href="../classes/Kernel.html#M000002">Kernel.context</a>.
|
131
|
-
</p>
|
132
|
-
<p>
|
133
|
-
You can use <tt>assert_*</tt> freely in specify-blocks; <a
|
134
|
-
href="../classes/Object.html#M000001">Object#should</a> works in plain
|
135
|
-
Test::Unit test cases, too, but they will not be counted.
|
136
|
-
</p>
|
137
|
-
<h2>Wrapped assertions</h2>
|
138
|
-
<table>
|
139
|
-
<tr><td valign="top"><tt>assert_equal</tt>:</td><td><tt>should.equal</tt>, <tt>should ==</tt>
|
140
|
-
|
141
|
-
</td></tr>
|
142
|
-
<tr><td valign="top"><tt>assert_not_equal</tt>:</td><td><tt>should.not.equal</tt>, <tt>should.not ==</tt>
|
143
|
-
|
144
|
-
</td></tr>
|
145
|
-
<tr><td valign="top"><tt>assert_same</tt>:</td><td><tt>should.be</tt>
|
146
|
-
|
147
|
-
</td></tr>
|
148
|
-
<tr><td valign="top"><tt>assert_not_same</tt>:</td><td><tt>should.not.be</tt>
|
149
|
-
|
150
|
-
</td></tr>
|
151
|
-
<tr><td valign="top"><tt>assert_nil</tt>:</td><td><tt>should.be.nil</tt>
|
152
|
-
|
153
|
-
</td></tr>
|
154
|
-
<tr><td valign="top"><tt>assert_not_nil</tt>:</td><td><tt>should.not.be.nil</tt>
|
155
|
-
|
156
|
-
</td></tr>
|
157
|
-
<tr><td valign="top"><tt>assert_in_delta</tt>:</td><td><tt>should.be.close</tt>
|
158
|
-
|
159
|
-
</td></tr>
|
160
|
-
<tr><td valign="top"><tt>assert_match</tt>:</td><td><tt>should.match</tt>, <tt>should =~</tt>
|
161
|
-
|
162
|
-
</td></tr>
|
163
|
-
<tr><td valign="top"><tt>assert_no_match</tt>:</td><td><tt>should.not.match</tt>, <tt>should.not =~</tt>
|
164
|
-
|
165
|
-
</td></tr>
|
166
|
-
<tr><td valign="top"><tt>assert_instance_of</tt>:</td><td><tt>should.be.an.instance_of</tt>
|
167
|
-
|
168
|
-
</td></tr>
|
169
|
-
<tr><td valign="top"><tt>assert_kind_of</tt>:</td><td><tt>should.be.a.kind_of</tt>
|
170
|
-
|
171
|
-
</td></tr>
|
172
|
-
<tr><td valign="top"><tt>assert_respond_to</tt>:</td><td><tt>should.respond_to</tt>
|
173
|
-
|
174
|
-
</td></tr>
|
175
|
-
<tr><td valign="top"><tt>assert_raise</tt>:</td><td><tt>should.raise</tt>
|
176
|
-
|
177
|
-
</td></tr>
|
178
|
-
<tr><td valign="top"><tt>assert_nothing_raised</tt>:</td><td><tt>should.not.raise</tt>
|
179
|
-
|
180
|
-
</td></tr>
|
181
|
-
<tr><td valign="top"><tt>assert_throws</tt>:</td><td><tt>should.throw</tt>
|
182
|
-
|
183
|
-
</td></tr>
|
184
|
-
<tr><td valign="top"><tt>assert_nothing_thrown</tt>:</td><td><tt>should.not.throw</tt>
|
185
|
-
|
186
|
-
</td></tr>
|
187
|
-
<tr><td valign="top"><tt>assert_block</tt>:</td><td><tt>should.satisfy</tt>
|
188
|
-
|
189
|
-
</td></tr>
|
190
|
-
</table>
|
191
|
-
<p>
|
192
|
-
(<tt>a</tt>, <tt>an</tt> and <tt>be</tt> without arguments are optional and
|
193
|
-
no-ops.)
|
194
|
-
</p>
|
195
|
-
<h2>Additional assertions</h2>
|
196
|
-
<p>
|
197
|
-
These assertions are not included in Test::Unit, but have been added to
|
198
|
-
test/spec for convenience:
|
199
|
-
</p>
|
200
|
-
<ul>
|
201
|
-
<li><tt>should.not.satisfy</tt>
|
202
|
-
|
203
|
-
</li>
|
204
|
-
<li><tt>should.include</tt>
|
205
|
-
|
206
|
-
</li>
|
207
|
-
<li><tt>a.should.</tt><em>predicate</em> (works like <tt>assert
|
208
|
-
a.</tt><em>predicate</em><tt>?</tt>)
|
209
|
-
|
210
|
-
</li>
|
211
|
-
<li><tt>a.should.be </tt><em>operator</em> (where <em>operator</em> is one of
|
212
|
-
<tt>></tt>, <tt>>=</tt>, <tt><</tt>, <tt><=</tt> or
|
213
|
-
<tt>===</tt>)
|
214
|
-
|
215
|
-
</li>
|
216
|
-
<li><tt>should.output</tt> (require test/spec/should-output)
|
217
|
-
|
218
|
-
</li>
|
219
|
-
</ul>
|
220
|
-
<p>
|
221
|
-
If you write an useful general-purpose assertion, I’d like to hear of
|
222
|
-
it and may add it to the test/spec distribution.
|
223
|
-
</p>
|
224
|
-
<h2>Messaging/Blaming</h2>
|
225
|
-
<p>
|
226
|
-
With more complex assertions, it may be helpful to provide a message to
|
227
|
-
show if the assertion has failed. This can be done with the Should#blaming
|
228
|
-
or Should#messaging methods:
|
229
|
-
</p>
|
230
|
-
<pre>
|
231
|
-
RUBY_VERSION.should.messaging("Ruby too old.").be > "1.8.4"
|
232
|
-
|
233
|
-
(1 + 1).should.blaming("weird math").not.equal 11
|
234
|
-
</pre>
|
235
|
-
<h2>Custom shoulds ("Matchers")</h2>
|
236
|
-
<p>
|
237
|
-
To capture recurring patterns in parts of your specifications, you can
|
238
|
-
define custom "shoulds" (RSpec calls them "matchers")
|
239
|
-
in your contexts, or include modules of them:
|
240
|
-
</p>
|
241
|
-
<pre>
|
242
|
-
context "Numbers"
|
243
|
-
class EqualString < Test::Spec::CustomShould
|
244
|
-
def matches?(other)
|
245
|
-
object == other.to_s
|
246
|
-
end
|
247
|
-
end
|
248
|
-
|
249
|
-
def equal_string(str)
|
250
|
-
EqualString.new(str)
|
251
|
-
end
|
252
|
-
|
253
|
-
specify "should have to_s"
|
254
|
-
42.should equal_string("42")
|
255
|
-
end
|
256
|
-
end
|
257
|
-
</pre>
|
258
|
-
<p>
|
259
|
-
Alternatively, your implementation can define CustomShould#assumptions,
|
260
|
-
where you can use test/spec assertions instead of Boolean predicates:
|
261
|
-
</p>
|
262
|
-
<pre>
|
263
|
-
class EqualString < Test::Spec::CustomShould
|
264
|
-
def assumptions(other)
|
265
|
-
object.should.equal other.to_s
|
266
|
-
end
|
267
|
-
end
|
268
|
-
</pre>
|
269
|
-
<p>
|
270
|
-
A CustomShould by default takes one argument, which is placed in
|
271
|
-
self.object for your convenience.
|
272
|
-
</p>
|
273
|
-
<p>
|
274
|
-
You can CustomShould#failure_message to provide a better error message.
|
275
|
-
</p>
|
276
|
-
<h2>SpecDox and RDox</h2>
|
277
|
-
<p>
|
278
|
-
test/spec adds two additional test runners to Test::Unit, based on the
|
279
|
-
console runner but with a different output format.
|
280
|
-
</p>
|
281
|
-
<p>
|
282
|
-
SpecDox, run with <tt>—runner=specdox</tt> (or <tt>-rs</tt>) looks
|
283
|
-
like RSpec’s output:
|
284
|
-
</p>
|
285
|
-
<pre>
|
286
|
-
should.output
|
287
|
-
- works for print
|
288
|
-
- works for puts
|
289
|
-
- works with readline
|
290
|
-
</pre>
|
291
|
-
<p>
|
292
|
-
RDox, run with <tt>—runner=rdox</tt> (or <tt>-rr</tt>) can be
|
293
|
-
included for RDoc documentation (e.g. see SPECS):
|
294
|
-
</p>
|
295
|
-
<pre>
|
296
|
-
== should.output
|
297
|
-
* works for print
|
298
|
-
* works for puts
|
299
|
-
* works with readline
|
300
|
-
</pre>
|
301
|
-
<p>
|
302
|
-
SpecDox and RDox work for Test::Unit too:
|
303
|
-
</p>
|
304
|
-
<pre>
|
305
|
-
$ ruby -r test/spec test/testunit/test_testresult.rb -rs
|
306
|
-
|
307
|
-
Test::Unit::TC_TestResult
|
308
|
-
- fault notification
|
309
|
-
- passed?
|
310
|
-
- result changed notification
|
311
|
-
|
312
|
-
Finished in 0.106647 seconds.
|
313
|
-
|
314
|
-
3 specifications (30 requirements), 0 failures
|
315
|
-
</pre>
|
316
|
-
<h2>Disabled specifications</h2>
|
317
|
-
<p>
|
318
|
-
Akin to the usual Test::Unit practice, tests quickly can be disabled by
|
319
|
-
replacing <tt>specify</tt> with <tt>xspecify</tt>. test/spec will count the
|
320
|
-
disabled tests when you run it with SpecDox or RDox.
|
321
|
-
</p>
|
322
|
-
<h2>specrb</h2>
|
323
|
-
<p>
|
324
|
-
Since version 0.2, test/spec features a standalone test runner called
|
325
|
-
specrb. specrb is like an extended version of testrb, Test::Unit’s
|
326
|
-
test runner, but has additional options. It can be used for plain
|
327
|
-
Test::Unit suites, too.
|
328
|
-
</p>
|
329
|
-
<pre>
|
330
|
-
$ specrb -a -s -n should.output
|
331
|
-
|
332
|
-
should.output
|
333
|
-
- works for print
|
334
|
-
- works for puts
|
335
|
-
- works with readline
|
336
|
-
|
337
|
-
Finished in 0.162571 seconds.
|
338
|
-
|
339
|
-
3 specifications (6 requirements), 0 failures
|
340
|
-
</pre>
|
341
|
-
<p>
|
342
|
-
Run <tt>specrb —help</tt> for the usage.
|
343
|
-
</p>
|
344
|
-
<h2>Installing with RubyGems</h2>
|
345
|
-
<p>
|
346
|
-
Since version 0.3, a Gem of test/spec is available. You can install with:
|
347
|
-
</p>
|
348
|
-
<pre>
|
349
|
-
gem install test-spec
|
350
|
-
</pre>
|
351
|
-
<p>
|
352
|
-
I also provide a local mirror of the gems (and development snapshots) at my
|
353
|
-
site:
|
354
|
-
</p>
|
355
|
-
<pre>
|
356
|
-
gem install test-spec --source http://chneukirchen.org/releases/gems
|
357
|
-
</pre>
|
358
|
-
<h2>History</h2>
|
359
|
-
<ul>
|
360
|
-
<li>September 29th, 2006: First public release 0.1.
|
361
|
-
|
362
|
-
</li>
|
363
|
-
<li>October 18th, 2006: Second public release 0.2.
|
364
|
-
|
365
|
-
<ul>
|
366
|
-
<li>Better, module-based implementation
|
367
|
-
|
368
|
-
</li>
|
369
|
-
<li>Official support for FlexMock and Mocha
|
370
|
-
|
371
|
-
</li>
|
372
|
-
<li>More robust Should#output
|
373
|
-
|
374
|
-
</li>
|
375
|
-
<li>Should#<em>operator</em>
|
376
|
-
|
377
|
-
</li>
|
378
|
-
<li>Nested contexts
|
379
|
-
|
380
|
-
</li>
|
381
|
-
<li>Standalone test/spec runner, specrb
|
382
|
-
|
383
|
-
</li>
|
384
|
-
</ul>
|
385
|
-
</li>
|
386
|
-
<li>January 24th, 2007: Third public release 0.3.
|
387
|
-
|
388
|
-
<ul>
|
389
|
-
<li>should.be_close, should.be_an_instance_of, should.be_a_kind_of, and
|
390
|
-
should.be_nil have been deprecated. Use the dot-variants of them. These
|
391
|
-
assertions will be removed in 1.0.
|
392
|
-
|
393
|
-
</li>
|
394
|
-
<li>specrb -a now includes -Ilib by default for easier out-of-the-box testing.
|
395
|
-
|
396
|
-
</li>
|
397
|
-
<li>Added custom shoulds.
|
398
|
-
|
399
|
-
</li>
|
400
|
-
<li>Added messaging/blaming.
|
401
|
-
|
402
|
-
</li>
|
403
|
-
<li>Added disabling of specifications.
|
404
|
-
|
405
|
-
</li>
|
406
|
-
<li>Small bug fixes.
|
407
|
-
|
408
|
-
</li>
|
409
|
-
<li>Gem available.
|
410
|
-
|
411
|
-
</li>
|
412
|
-
</ul>
|
413
|
-
</li>
|
414
|
-
</ul>
|
415
|
-
<h2>Contact</h2>
|
416
|
-
<p>
|
417
|
-
Please mail bugs, suggestions and patches to <<a
|
418
|
-
href="mailto:chneukirchen@gmail.com">chneukirchen@gmail.com</a>>.
|
419
|
-
</p>
|
420
|
-
<p>
|
421
|
-
Darcs repository ("darcs send" is welcome for patches): <a
|
422
|
-
href="http://chneukirchen.org/repos/testspec">chneukirchen.org/repos/testspec</a>
|
423
|
-
</p>
|
424
|
-
<h2>Thanks to</h2>
|
425
|
-
<ul>
|
426
|
-
<li>Eero Saynatkari for writing <tt>should.output</tt>.
|
427
|
-
|
428
|
-
</li>
|
429
|
-
<li>Jean-Michel Garnier for packaging the first gem.
|
430
|
-
|
431
|
-
</li>
|
432
|
-
<li>Mikko Lehtonen for testing the gem.
|
433
|
-
|
434
|
-
</li>
|
435
|
-
<li>Thomas Fuchs for script.aculo.us BDD testing which convinced me.
|
436
|
-
|
437
|
-
</li>
|
438
|
-
<li>Dave Astels for BDD.
|
439
|
-
|
440
|
-
</li>
|
441
|
-
<li>The RSpec team for API inspiration.
|
442
|
-
|
443
|
-
</li>
|
444
|
-
<li>Nathaniel Talbott for Test::Unit.
|
445
|
-
|
446
|
-
</li>
|
447
|
-
</ul>
|
448
|
-
<h2>Copying</h2>
|
449
|
-
<p>
|
450
|
-
Copyright (C) 2006, 2007 Christian Neukirchen <<a
|
451
|
-
href="http://purl.org/net/chneukirchen">purl.org/net/chneukirchen</a>>
|
452
|
-
</p>
|
453
|
-
<p>
|
454
|
-
test/spec is licensed under the same terms as Ruby itself.
|
455
|
-
</p>
|
456
|
-
<p>
|
457
|
-
Please mail bugs, feature requests or patches to the mail addresses found
|
458
|
-
above or use <a href="irc://freenode.net/#ruby-lang">IRC</a> to contact the
|
459
|
-
developer.
|
460
|
-
</p>
|
461
|
-
<h2>Links</h2>
|
462
|
-
<table>
|
463
|
-
<tr><td valign="top">Behavior-Driven Development:</td><td><<a href="http://behaviour-driven.org">behaviour-driven.org</a>/>
|
464
|
-
|
465
|
-
</td></tr>
|
466
|
-
<tr><td valign="top">RSpec:</td><td><<a href="http://rspec.rubyforge.org">rspec.rubyforge.org</a>/>
|
467
|
-
|
468
|
-
</td></tr>
|
469
|
-
<tr><td valign="top">script.aculo.us testing:</td><td><<a
|
470
|
-
href="http://mir.aculo.us/articles/2006/08/29/bdd-style-javascript-testing">mir.aculo.us/articles/2006/08/29/bdd-style-javascript-testing</a>>
|
471
|
-
|
472
|
-
</td></tr>
|
473
|
-
<tr><td valign="top">FlexMock:</td><td><<a
|
474
|
-
href="http://onestepback.org/software/flexmock">onestepback.org/software/flexmock</a>/>
|
475
|
-
|
476
|
-
</td></tr>
|
477
|
-
<tr><td valign="top">Mocha:</td><td><<a href="http://mocha.rubyforge.org">mocha.rubyforge.org</a>/>
|
478
|
-
|
479
|
-
</td></tr>
|
480
|
-
<tr><td valign="top">Christian Neukirchen:</td><td><<a href="http://chneukirchen.org">chneukirchen.org</a>/>
|
481
|
-
|
482
|
-
</td></tr>
|
483
|
-
</table>
|
484
|
-
|
485
|
-
</div>
|
486
|
-
|
487
|
-
|
488
|
-
</div>
|
489
|
-
|
490
|
-
|
491
|
-
</div>
|
492
|
-
|
493
|
-
|
494
|
-
<!-- if includes -->
|
495
|
-
|
496
|
-
<div id="section">
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
<!-- if method_list -->
|
506
|
-
|
507
|
-
|
508
|
-
</div>
|
509
|
-
|
510
|
-
|
511
|
-
<div id="validator-badges">
|
512
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
513
|
-
</div>
|
514
|
-
|
515
|
-
</body>
|
516
|
-
</html>
|