man/man1/detest.1 in detest-3.1.2 vs man/man1/detest.1 in detest-3.1.3

- old
+ new

@@ -1,16 +1,25 @@ '\" t .\" Title: detest .\" Author: [see the "AUTHORS" section] -.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 08/10/2010 +.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> +.\" Date: 2011-04-22 .\" Manual: \ \& -.\" Source: \ \& 3.1.2 +.\" Source: \ \& 3.1.3 .\" Language: English .\" -.TH "DETEST" "1" "08/10/2010" "\ \& 3\&.1\&.2" "\ \&" +.TH "DETEST" "1" "2011\-04\-22" "\ \& 3\&.1\&.3" "\ \&" .\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) @@ -51,38 +60,38 @@ .fi .sp Execute all *_test\&.rb files inside the test/ directory: .sp .nf -detest \'test/*_test\&.rb\' +detest \*(Aqtest/*_test\&.rb\*(Aq .fi .sp Execute all *_test\&.rb files inside or beneath the test/ directory: .sp .nf -detest \'test/**/*_test\&.rb\' +detest \*(Aqtest/**/*_test\&.rb\*(Aq .fi .sp Execute all foo_test\&.rb and bar_test\&.rb files inside or beneath the test/ directory: .sp .nf -detest \'test/**/{foo,bar}_test\&.rb\' +detest \*(Aqtest/**/{foo,bar}_test\&.rb\*(Aq .fi .SH "DESCRIPTION" .sp -Detest is an assertion testing library for the Ruby programming language\&. It features a simple assertion vocabulary, instant debuggability of failures, and flexibility in composing tests\&. +Detest is an assertion testing library for [Ruby] that features a simple assertion vocabulary, instant debuggability of failures, and flexibility in composing tests\&. .SS "Features" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} -Only 8 mnemonic method names to remember: +Only 8 mnemonic method names for you to remember: .sp \fBT\fRrue, \fBF\fRalse, \fBN\fRil, \fBE\fRrror, @@ -131,42 +140,42 @@ .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} -Implemented in 436 lines of pure Ruby\&. +Implemented in 434 lines of pure Ruby\&. .RE .SS "Resources" .PP Project website .RS 4 -http://snk\&.tuxfamily\&.org/lib/detest/ +\m[blue]\fBhttp://snk\&.tuxfamily\&.org/lib/detest/\fR\m[] .RE .PP Announcements feed .RS 4 -http://snk\&.tuxfamily\&.org/lib/detest/ann\&.xml +\m[blue]\fBhttp://snk\&.tuxfamily\&.org/lib/detest/ann\&.xml\fR\m[] .RE .PP API documentation .RS 4 -http://snk\&.tuxfamily\&.org/lib/detest/api/ +\m[blue]\fBhttp://snk\&.tuxfamily\&.org/lib/detest/api/\fR\m[] .RE .PP Source code (browse online, download, or checkout) .RS 4 -http://github\&.com/sunaku/detest +\m[blue]\fBhttp://github\&.com/sunaku/detest\fR\m[] .RE .PP Issue tracker (report bugs, request features, get help) .RS 4 -http://github\&.com/sunaku/detest/issues +\m[blue]\fBhttp://github\&.com/sunaku/detest/issues\fR\m[] .RE .SH "INSTALL" .SS "Prerequisites" .sp .RS 4 @@ -233,12 +242,12 @@ .sp .if n \{\ .RS 4 .\} .nf -require \'rubygems\' # might not be necessary; see HACKING -require \'detest\' +require \*(Aqrubygems\*(Aq # might not be necessary; see HACKING +require \*(Aqdetest\*(Aq .fi .if n \{\ .RE .\} .sp @@ -246,12 +255,12 @@ .sp .if n \{\ .RS 4 .\} .nf -Detest\&.D \'hello\' do # D() is a class method - puts \'world\' +Detest\&.D \*(Aqhello\*(Aq do # D() is a class method + puts \*(Aqworld\*(Aq end .fi .if n \{\ .RE .\} @@ -262,12 +271,12 @@ .RS 4 .\} .nf include Detest # mix\-in the Detest module -D \'hello\' do # D() is an instance method - puts \'world\' +D \*(Aqhello\*(Aq do # D() is an instance method + puts \*(Aqworld\*(Aq end .fi .if n \{\ .RE .\} @@ -337,17 +346,17 @@ .sp .if n \{\ .RS 4 .\} .nf -require \'detest/auto\' +require \*(Aqdetest/auto\*(Aq .fi .if n \{\ .RE .\} .sp -See the API documentation for more information and examples\&. +See the \m[blue]\fBAPI documentation\fR\m[] for more information and examples\&. .SH "ASSERTIONS" .SS "Writing assertions" .sp 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 their failure reports if they fail\&. .TS @@ -360,39 +369,39 @@ T{ .sp T() T}:T{ .sp -assert true (not nil and not false) \(em API documentation +assert true (not nil and not false) \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[1]\d\s+2 T} T{ .sp F() T}:T{ .sp -assert not true (nil or false) \(em API documentation +assert not true (nil or false) \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[2]\d\s+2 T} T{ .sp N() T}:T{ .sp -assert that the value is nil \(em API documentation +assert that the value is nil \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[3]\d\s+2 T} T{ .sp E() T}:T{ .sp -assert that an execption is raised \(em API documentation +assert that an execption is raised \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[4]\d\s+2 T} T{ .sp C() T}:T{ .sp -assert that a symbol is thrown \(em API documentation +assert that a symbol is thrown \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[5]\d\s+2 T} .TE .sp 1 .sp For the T() and F() methods, you may alternatively pass the condition to be asserted as the first argument (instead of passing it as a block)\&. This might result in a more pleasing syntax, depending on your taste: @@ -428,39 +437,39 @@ T{ .sp T!() T}:T{ .sp -same as F() \(em API documentation +same as F() \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[6]\d\s+2 T} T{ .sp F!() T}:T{ .sp -same as T() \(em API documentation +same as T() \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[7]\d\s+2 T} T{ .sp N!() T}:T{ .sp -assert that value is not nil \(em API documentation +assert that value is not nil \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[8]\d\s+2 T} T{ .sp E!() T}:T{ .sp -assert that an exception is \fInot\fR raised \(em API documentation +assert that an exception is \fInot\fR raised \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[9]\d\s+2 T} T{ .sp C!() T}:T{ .sp -assert that a symbol is \fInot\fR thrown \(em API documentation +assert that a symbol is \fInot\fR thrown \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[10]\d\s+2 T} .TE .sp 1 .SS "Sampling assertions" .sp @@ -475,39 +484,39 @@ T{ .sp T?() T}:T{ .sp -returns true if T() passes; false otherwise \(em API documentation +returns true if T() passes; false otherwise \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[11]\d\s+2 T} T{ .sp F?() T}:T{ .sp -returns true if F() passes; false otherwise \(em API documentation +returns true if F() passes; false otherwise \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[12]\d\s+2 T} T{ .sp N?() T}:T{ .sp -returns true if N() passes; false otherwise \(em API documentation +returns true if N() passes; false otherwise \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[13]\d\s+2 T} T{ .sp E?() T}:T{ .sp -returns true if E() passes; false otherwise \(em API documentation +returns true if E() passes; false otherwise \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[14]\d\s+2 T} T{ .sp C?() T}:T{ .sp -returns true if C() passes; false otherwise \(em API documentation +returns true if C() passes; false otherwise \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[15]\d\s+2 T} .TE .sp 1 .SS "Assertion failure reports" .sp @@ -593,11 +602,11 @@ .sp Assertion failure reports can be accessed at any time within the test execution trace provided by the Detest\&.trace() method\&. .SH "TESTS" .SS "Defining tests" .sp -The D() method creates a new \fBtest\fR, which is analagous to the \fBdescribe\fR keyword in [RSpec] and also to the concept of a "test case" in [xUnit]\&. +\m[blue]\fBThe D() method\fR\m[]\&\s-2\u[16]\d\s+2 creates a new \fBtest\fR, which is analagous to the \fBdescribe\fR keyword in [RSpec] and also to the concept of a "test case" in [xUnit]\&. .sp .if n \{\ .RS 4 .\} .nf @@ -614,11 +623,11 @@ .\} .sp A test may contain nested tests, as illustrated above\&. .SS "Insulating tests" .sp -The D!() method defines a new test that is explicitly insulated from the tests that contain it and also from the top\-level Ruby environment\&. +\m[blue]\fBThe D!() method\fR\m[]\&\s-2\u[17]\d\s+2 defines a new test that is explicitly insulated from the tests that contain it and also from the top\-level Ruby environment\&. .sp Inside an insulated test, you are free to mix\-in (using the \fBextend\fR keyword, not the \fBinclude\fR keyword) any modules your test logic needs\&. You can also define your own constants, methods, classes, and modules here\&. .if n \{\ .sp .\} @@ -642,11 +651,11 @@ .sp .if n \{\ .RS 4 .\} .nf -require \'detest/auto\' +require \*(Aqdetest/auto\*(Aq D "a root\-level test" do @outside = 1 T { defined? @outside } T { @outside == 1 } @@ -683,18 +692,18 @@ \- a root\-level test: \- an inner, non\-insulated test: \- an inner, insulated test: \-\-\- pass: 10 -time: 0\&.009158971 +time: 0\&.003163252 .fi .if n \{\ .RE .\} .SS "Sharing tests" .sp -The S() method is a mechanism for sharing code\&. It can be used in two ways: +\m[blue]\fBThe S() method\fR\m[]\&\s-2\u[18]\d\s+2 is a mechanism for sharing code\&. It can be used in two ways: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} @@ -714,48 +723,48 @@ .IP " 2." 4.2 .\} When called without a block, it injects a previously shared block (under a given identifier) into the environment where it is called\&. .RE .sp -The S!() method is a combination of the two uses of the S() method: it lets you simultaneously share a block of code while injecting it into the environment where that method is called\&. +\m[blue]\fBThe S!() method\fR\m[]\&\s-2\u[19]\d\s+2 is a combination of the two uses of the S() method: it lets you simultaneously share a block of code while injecting it into the environment where that method is called\&. .sp -The S?() method checks whether any code has been shared under a given identifier\&. +\m[blue]\fBThe S?() method\fR\m[]\&\s-2\u[20]\d\s+2 checks whether any code has been shared under a given identifier\&. .PP \fBExample\ \&2.\ \&Sharing code between tests\fR .sp When the following test is run: .sp .if n \{\ .RS 4 .\} .nf -require \'detest/auto\' +require \*(Aqdetest/auto\*(Aq S :knowledge do - I \'Knowledge is power!\' + I \*(AqKnowledge is power!\*(Aq end -D \'Healer\' do +D \*(AqHealer\*(Aq do S :knowledge end -D \'Warrior\' do +D \*(AqWarrior\*(Aq do S! :strength do - I \'Strength is power!\' + I \*(AqStrength is power!\*(Aq end end -D \'Wizard\' do +D \*(AqWizard\*(Aq do S :knowledge S :strength end -D \'King\' do +D \*(AqKing\*(Aq do T { S? :knowledge } T { S? :strength } F { S? :power } - I \'Power is power!\' + I \*(AqPower is power!\*(Aq end .fi .if n \{\ .RE .\} @@ -776,41 +785,41 @@ \- Strength is power! \- King: \- Power is power! \-\-\- pass: 3 -time: 0\&.007596486 +time: 0\&.002480134 .fi .if n \{\ .RE .\} .SS "Logging information" .sp -The I() method is a mechanism for inserting arbitrary Ruby objects into the test execution report\&. You can think of this method as being a way \fIto inform\fR someone\&. +\m[blue]\fBThe I() method\fR\m[]\&\s-2\u[21]\d\s+2 is a mechanism for inserting arbitrary Ruby objects into the test execution report\&. You can think of this method as being a way \fIto inform\fR someone\&. .sp -The I!() method starts the interactive debugger at the location where it is called\&. You can think of this method as being a way \fIto investigate\fR the state of your program\&. +\m[blue]\fBThe I!() method\fR\m[]\&\s-2\u[22]\d\s+2 starts the interactive debugger at the location where it is called\&. You can think of this method as being a way \fIto investigate\fR the state of your program\&. .PP \fBExample\ \&3.\ \&Logging information in the execution report\fR .sp When the following test is run: .sp .if n \{\ .RS 4 .\} .nf -require \'detest/auto\' +require \*(Aqdetest/auto\*(Aq -D \'Wizard\' do - I \'Preparing spell to defeat mortal foes\&.\&.\&.\' +D \*(AqWizard\*(Aq do + I \*(AqPreparing spell to defeat mortal foes\&.\&.\&.\*(Aq end -D \'Magician\' do - I \'Preparing rabbits to pull from hat\&.\&.\&.\', rand(15) +D \*(AqMagician\*(Aq do + I \*(AqPreparing rabbits to pull from hat\&.\&.\&.\*(Aq, rand(15) end -D \'Calculator\' do - I Math::PI, [1, 2, 3, [\'a\', \'b\', \'c\']], {:foo => \'bar!\'} +D \*(AqCalculator\*(Aq do + I Math::PI, [1, 2, 3, [\*(Aqa\*(Aq, \*(Aqb\*(Aq, \*(Aqc\*(Aq]], {:foo => \*(Aqbar!\*(Aq} end .fi .if n \{\ .RE .\} @@ -824,22 +833,22 @@ \-\-\- \- Wizard: \- Preparing spell to defeat mortal foes\&.\&.\&. \- Magician: \- Preparing rabbits to pull from hat\&.\&.\&. - \- 8 + \- 9 \- Calculator: \- 3\&.141592653589793 \- \- 1 \- 2 \- 3 \- \- a \- b \- c \- foo: bar! \-\-\- -time: 0\&.002930334 +time: 0\&.000989371 .fi .if n \{\ .RE .\} .SS "Execution hooks" @@ -854,32 +863,32 @@ T{ .sp D\&.<() T}:T{ .sp -calls the given block \fIbefore each\fR child test \(em API documentation +calls the given block \fIbefore each\fR child test \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[23]\d\s+2 T} T{ .sp D\&.>() T}:T{ .sp -calls the given block \fIafter each\fR child test \(em API documentation +calls the given block \fIafter each\fR child test \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[24]\d\s+2 T} T{ .sp D\&.<<() T}:T{ .sp -calls the given block \fIbefore all\fR child tests \(em API documentation +calls the given block \fIbefore all\fR child tests \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[25]\d\s+2 T} T{ .sp D\&.>>() T}:T{ .sp -calls the given block \fIafter all\fR child tests \(em API documentation +calls the given block \fIafter all\fR child tests \(em \m[blue]\fBAPI documentation\fR\m[]\&\s-2\u[26]\d\s+2 T} .TE .sp 1 .sp A hook method can be called multiple times\&. Each additional call schedules more logic to be executed during the hook: @@ -901,11 +910,11 @@ .sp .if n \{\ .RS 4 .\} .nf -require \'detest/auto\' +require \*(Aqdetest/auto\*(Aq D "outer test" do D \&.< { I "(outer hook) before each" } D \&.> { I "(outer hook) after each" } D \&.<< { I "(outer hook) before all" } @@ -960,11 +969,11 @@ \- goodbye world \- (outer hook) after each \- (outer hook) after each, again \- (outer hook) after all \-\-\- -time: 0\&.009311863 +time: 0\&.002571905 .fi .if n \{\ .RE .\} .SH "EMULATION" @@ -1021,39 +1030,39 @@ T{ .sp after(\fIwhat\fR, &\fIblock\fR) T}:T{ .sp -lib/detest/spec\&.rb:21 +\m[blue]\fBlib/detest/spec\&.rb:21\fR\m[]\&\s-2\u[27]\d\s+2 T} T{ .sp before(\fIwhat\fR, &\fIblock\fR) T}:T{ .sp -lib/detest/spec\&.rb:10 +\m[blue]\fBlib/detest/spec\&.rb:10\fR\m[]\&\s-2\u[28]\d\s+2 T} T{ .sp context(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp describe(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp it(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} .TE .sp 1 .SS "detest/unit" .sp @@ -1100,263 +1109,263 @@ T{ .sp assert(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp assert_empty(\fIcollection\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:26 +\m[blue]\fBlib/detest/unit\&.rb:26\fR\m[]\&\s-2\u[30]\d\s+2 T} T{ .sp assert_equal(\fIexpected\fR, \fIactual\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:31 +\m[blue]\fBlib/detest/unit\&.rb:31\fR\m[]\&\s-2\u[31]\d\s+2 T} T{ .sp assert_in_delta(\fIexpected\fR, \fIactual\fR, \fIdelta\fR=nil, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:36 +\m[blue]\fBlib/detest/unit\&.rb:36\fR\m[]\&\s-2\u[32]\d\s+2 T} T{ .sp assert_in_epsilon(\fIexpected\fR, \fIactual\fR, \fIdelta\fR=nil, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:36 +\m[blue]\fBlib/detest/unit\&.rb:36\fR\m[]\&\s-2\u[32]\d\s+2 T} T{ .sp assert_include(\fIitem\fR, \fIcollection\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:47 +\m[blue]\fBlib/detest/unit\&.rb:47\fR\m[]\&\s-2\u[33]\d\s+2 T} T{ .sp assert_instance_of(\fIklass\fR, \fIobject\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:52 +\m[blue]\fBlib/detest/unit\&.rb:52\fR\m[]\&\s-2\u[34]\d\s+2 T} T{ .sp assert_kind_of(\fIklass\fR, \fIobject\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:57 +\m[blue]\fBlib/detest/unit\&.rb:57\fR\m[]\&\s-2\u[35]\d\s+2 T} T{ .sp assert_match(\fIpattern\fR, \fIstring\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:67 +\m[blue]\fBlib/detest/unit\&.rb:67\fR\m[]\&\s-2\u[36]\d\s+2 T} T{ .sp assert_nil(\fIobject\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:62 +\m[blue]\fBlib/detest/unit\&.rb:62\fR\m[]\&\s-2\u[37]\d\s+2 T} T{ .sp assert_not(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp assert_not_empty(\fIcollection\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:26 +\m[blue]\fBlib/detest/unit\&.rb:26\fR\m[]\&\s-2\u[30]\d\s+2 T} T{ .sp assert_not_equal(\fIexpected\fR, \fIactual\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:31 +\m[blue]\fBlib/detest/unit\&.rb:31\fR\m[]\&\s-2\u[31]\d\s+2 T} T{ .sp assert_not_in_delta(\fIexpected\fR, \fIactual\fR, \fIdelta\fR=nil, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:36 +\m[blue]\fBlib/detest/unit\&.rb:36\fR\m[]\&\s-2\u[32]\d\s+2 T} T{ .sp assert_not_in_epsilon(\fIexpected\fR, \fIactual\fR, \fIdelta\fR=nil, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:36 +\m[blue]\fBlib/detest/unit\&.rb:36\fR\m[]\&\s-2\u[32]\d\s+2 T} T{ .sp assert_not_include(\fIitem\fR, \fIcollection\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:47 +\m[blue]\fBlib/detest/unit\&.rb:47\fR\m[]\&\s-2\u[33]\d\s+2 T} T{ .sp assert_not_instance_of(\fIklass\fR, \fIobject\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:52 +\m[blue]\fBlib/detest/unit\&.rb:52\fR\m[]\&\s-2\u[34]\d\s+2 T} T{ .sp assert_not_kind_of(\fIklass\fR, \fIobject\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:57 +\m[blue]\fBlib/detest/unit\&.rb:57\fR\m[]\&\s-2\u[35]\d\s+2 T} T{ .sp assert_not_match(\fIpattern\fR, \fIstring\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:67 +\m[blue]\fBlib/detest/unit\&.rb:67\fR\m[]\&\s-2\u[36]\d\s+2 T} T{ .sp assert_not_nil(\fIobject\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:62 +\m[blue]\fBlib/detest/unit\&.rb:62\fR\m[]\&\s-2\u[37]\d\s+2 T} T{ .sp assert_not_operator(\fIobject\fR, \fIoperator\fR, \fIoperand\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:77 +\m[blue]\fBlib/detest/unit\&.rb:77\fR\m[]\&\s-2\u[38]\d\s+2 T} T{ .sp assert_not_raise(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest/unit\&.rb:82 +\m[blue]\fBlib/detest/unit\&.rb:82\fR\m[]\&\s-2\u[39]\d\s+2 T} T{ .sp assert_not_respond_to(\fIobject\fR, \fIquery\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:86 +\m[blue]\fBlib/detest/unit\&.rb:86\fR\m[]\&\s-2\u[40]\d\s+2 T} T{ .sp assert_not_same(\fIexpected\fR, \fIactual\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:72 +\m[blue]\fBlib/detest/unit\&.rb:72\fR\m[]\&\s-2\u[41]\d\s+2 T} T{ .sp -assert_not_send(\fIobject\fR, \fIquery\fR, *\fIargs\fR) +assert_not_send(\fIsend_array\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:95 +\m[blue]\fBlib/detest/unit\&.rb:95\fR\m[]\&\s-2\u[42]\d\s+2 T} T{ .sp assert_not_throw(\fIsymbol\fR, \fImessage\fR=nil, &\fIblock\fR) T}:T{ .sp -lib/detest/unit\&.rb:91 +\m[blue]\fBlib/detest/unit\&.rb:91\fR\m[]\&\s-2\u[43]\d\s+2 T} T{ .sp assert_operator(\fIobject\fR, \fIoperator\fR, \fIoperand\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:77 +\m[blue]\fBlib/detest/unit\&.rb:77\fR\m[]\&\s-2\u[38]\d\s+2 T} T{ .sp assert_raise(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest/unit\&.rb:82 +\m[blue]\fBlib/detest/unit\&.rb:82\fR\m[]\&\s-2\u[39]\d\s+2 T} T{ .sp assert_respond_to(\fIobject\fR, \fIquery\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:86 +\m[blue]\fBlib/detest/unit\&.rb:86\fR\m[]\&\s-2\u[40]\d\s+2 T} T{ .sp assert_same(\fIexpected\fR, \fIactual\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:72 +\m[blue]\fBlib/detest/unit\&.rb:72\fR\m[]\&\s-2\u[41]\d\s+2 T} T{ .sp -assert_send(\fIobject\fR, \fIquery\fR, *\fIargs\fR) +assert_send(\fIsend_array\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:95 +\m[blue]\fBlib/detest/unit\&.rb:95\fR\m[]\&\s-2\u[42]\d\s+2 T} T{ .sp assert_throw(\fIsymbol\fR, \fImessage\fR=nil, &\fIblock\fR) T}:T{ .sp -lib/detest/unit\&.rb:91 +\m[blue]\fBlib/detest/unit\&.rb:91\fR\m[]\&\s-2\u[43]\d\s+2 T} T{ .sp setup(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp setup!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp teardown(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp teardown!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp test(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} .TE .sp 1 .SS "detest/mini" .sp @@ -1382,116 +1391,116 @@ T{ .sp refute(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp refute_empty(\fIcollection\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:26 +\m[blue]\fBlib/detest/unit\&.rb:26\fR\m[]\&\s-2\u[30]\d\s+2 T} T{ .sp refute_equal(\fIexpected\fR, \fIactual\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:31 +\m[blue]\fBlib/detest/unit\&.rb:31\fR\m[]\&\s-2\u[31]\d\s+2 T} T{ .sp refute_in_delta(\fIexpected\fR, \fIactual\fR, \fIdelta\fR=nil, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:36 +\m[blue]\fBlib/detest/unit\&.rb:36\fR\m[]\&\s-2\u[32]\d\s+2 T} T{ .sp refute_in_epsilon(\fIexpected\fR, \fIactual\fR, \fIdelta\fR=nil, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:36 +\m[blue]\fBlib/detest/unit\&.rb:36\fR\m[]\&\s-2\u[32]\d\s+2 T} T{ .sp refute_include(\fIitem\fR, \fIcollection\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:47 +\m[blue]\fBlib/detest/unit\&.rb:47\fR\m[]\&\s-2\u[33]\d\s+2 T} T{ .sp refute_instance_of(\fIklass\fR, \fIobject\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:52 +\m[blue]\fBlib/detest/unit\&.rb:52\fR\m[]\&\s-2\u[34]\d\s+2 T} T{ .sp refute_kind_of(\fIklass\fR, \fIobject\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:57 +\m[blue]\fBlib/detest/unit\&.rb:57\fR\m[]\&\s-2\u[35]\d\s+2 T} T{ .sp refute_match(\fIpattern\fR, \fIstring\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:67 +\m[blue]\fBlib/detest/unit\&.rb:67\fR\m[]\&\s-2\u[36]\d\s+2 T} T{ .sp refute_nil(\fIobject\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:62 +\m[blue]\fBlib/detest/unit\&.rb:62\fR\m[]\&\s-2\u[37]\d\s+2 T} T{ .sp refute_operator(\fIobject\fR, \fIoperator\fR, \fIoperand\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:77 +\m[blue]\fBlib/detest/unit\&.rb:77\fR\m[]\&\s-2\u[38]\d\s+2 T} T{ .sp refute_raise(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest/unit\&.rb:82 +\m[blue]\fBlib/detest/unit\&.rb:82\fR\m[]\&\s-2\u[39]\d\s+2 T} T{ .sp refute_respond_to(\fIobject\fR, \fIquery\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:86 +\m[blue]\fBlib/detest/unit\&.rb:86\fR\m[]\&\s-2\u[40]\d\s+2 T} T{ .sp refute_same(\fIexpected\fR, \fIactual\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:72 +\m[blue]\fBlib/detest/unit\&.rb:72\fR\m[]\&\s-2\u[41]\d\s+2 T} T{ .sp -refute_send(\fIobject\fR, \fIquery\fR, *\fIargs\fR) +refute_send(\fIsend_array\fR, \fImessage\fR=nil) T}:T{ .sp -lib/detest/unit\&.rb:95 +\m[blue]\fBlib/detest/unit\&.rb:95\fR\m[]\&\s-2\u[42]\d\s+2 T} T{ .sp refute_throw(\fIsymbol\fR, \fImessage\fR=nil, &\fIblock\fR) T}:T{ .sp -lib/detest/unit\&.rb:91 +\m[blue]\fBlib/detest/unit\&.rb:91\fR\m[]\&\s-2\u[43]\d\s+2 T} .TE .sp 1 .SS "detest/long" .sp @@ -1523,171 +1532,171 @@ T{ .sp Catch(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Catch!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Catch?(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Describe(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Describe!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Error(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Error!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Error?(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp False(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp False!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp False?(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Inform(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Inform!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Nil(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Nil!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Nil?(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Share(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Share!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp Share?(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp True(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp True!(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} T{ .sp True?(*\fIargs\fR, &\fIblock\fR) T}:T{ .sp -lib/detest\&.rb:1168 +\m[blue]\fBlib/detest\&.rb:1166\fR\m[]\&\s-2\u[29]\d\s+2 T} .TE .sp 1 .SH "HACKING" .SS "Prerequisites" .sp -Install Ruby libraries necessary for development: +Install Ruby libraries necessary for development using [Bundler]: .sp .if n \{\ .RS 4 .\} .nf -gem install detest \-\-development +bundle install .fi .if n \{\ .RE .\} .SS "Infrastructure" @@ -1736,11 +1745,11 @@ .fi .if n \{\ .RE .\} .sp -Or by running Ruby through the ruby\-wrapper tool\&. +Or by running Ruby through the \m[blue]\fBruby\-wrapper\fR\m[]\&\s-2\u[44]\d\s+2 tool\&. .SS "RubyGems setup" .sp If you use Ruby 1\&.8 or older, then ensure that RubyGems is activated before you use any libraries in the lib/ directory or run any executables in the bin/ directory\&. .sp This can be achieved by passing an option to Ruby: @@ -1769,11 +1778,11 @@ .if n \{\ .RE .\} .SS "Running tests" .sp -Simply execute the included test runner, which sets up Ruby\(cqs $LOAD_PATH for testing, loads the test/helper\&.rb file, and then evaluates all test/**/*_test\&.rb files: +Simply execute the included test runner, which sets up Ruby\(cqs $LOAD_PATH for testing, loads the included test/test_helper\&.rb file, and then evaluates all test/**/*_test\&.rb files: .sp .if n \{\ .RS 4 .\} .nf @@ -1781,15 +1790,59 @@ .fi .if n \{\ .RE .\} .sp -Its exit status will indicate whether all tests have passed\&. It may also print additional pass/fail information depending on the testing library used in the test/helper\&.rb file\&. +Its exit status will indicate whether all tests have passed\&. It may also print additional pass/fail information depending on the testing library used in the test/test_helper\&.rb file\&. .SS "Contributing" .sp -Fork this project on GitHub and send a pull request\&. +\m[blue]\fBFork this project on GitHub\fR\m[] and send a pull request\&. .SH "HISTORY" +.SS "Version 3\&.1\&.3 (2011\-04\-22)" +.sp +This release fixes bugs in the Test::Unit emulation layer\&. +.PP +\fBBug fixes\fR +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} + +assert_send() +did not follow Test::Unit syntax\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} + +assert_operator() +did not set failure message\&. +.RE +.PP +\fBHousekeeping\fR +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Upgrade to Inochi 6\&.0\&.2\&. +.RE .SS "Version 3\&.1\&.2 (2010\-08\-10)" .sp This release adds links to API documentation beside methods mentioned in the help manual and restores metadata that was missing in the gem release package\&. .PP \fBHousekeeping\fR @@ -2491,11 +2544,11 @@ .el \{\ .sp -1 .IP \(bu 2.3 .\} Do not -require \'rubygems\' +require \*(Aqrubygems\*(Aq before loading the "ruby\-debug" library\&. .RE .sp .RS 4 .ie n \{\ @@ -2871,11 +2924,11 @@ .IP \(bu 2.3 .\} Add Dfect::S() method for adding status messages to the execution report\&. -This feature was requested +\m[blue]\fBThis feature was requested\fR\m[]\&\s-2\u[45]\d\s+2 by Iñaki Baz Castillo\&. .RE .PP \fBHousekeeping\fR .sp @@ -3028,11 +3081,11 @@ .el \{\ .sp -1 .IP \(bu 2.3 .\} Open source is for fun, so -be nice +\m[blue]\fBbe nice\fR\m[]\&\s-2\u[46]\d\s+2 and speak of "related works" instead of "competitors"\&. .RE .SS "Version 1\&.0\&.0 (2009\-05\-03)" .sp This release improves default choices, adds emulation layers to mimic other testing libraries, and fixes some bugs\&. @@ -3261,11 +3314,11 @@ .sp .if n \{\ .RS 4 .\} .nf -TypeError: can\'t dump anonymous class Class +TypeError: can\*(Aqt dump anonymous class Class .fi .if n \{\ .RE .\} .RE @@ -3326,11 +3379,11 @@ [Verify] .RE .sp The status quo was certainly \fInot\fR "good enough", as I had so blindly believed all these years\&. In fact, they were \fIverbose\fR behemoths that chose to encode endless permutations of conjecture into methods\&. .sp -Empowered by this revelation and inspired by Sean O\(cqHalpin\(cqs musing on alternative names for assertion methods, I rose to challenge the status quo\&. +Empowered by this revelation and inspired by \m[blue]\fBSean O\(cqHalpin\(cqs musing\fR\m[]\&\s-2\u[47]\d\s+2 on alternative names for assertion methods, I rose to challenge the status quo\&. .sp And so I present to you the first public release of "Dfect"\&. .SH "AUTHORS" .sp Suraj N\&. Kurapati @@ -3339,11 +3392,11 @@ François Beausoleil, Gavin Sinclair, Iñaki Baz Castillo, Sean O\(cqHalpin .SS "License" .sp (the ISC license) .sp -Copyright 2009 Suraj N\&. Kurapati <sunaku@gmail\&.com> +Copyright 2009 Suraj N\&. Kurapati <\m[blue]\fBsunaku@gmail\&.com\fR\m[]\&\s-2\u[48]\d\s+2> .sp Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies\&. .sp THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\&. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE\&. .SH "SEE ALSO" @@ -3362,99 +3415,348 @@ lt lt lt lt lt lt lt lt lt lt +lt lt lt lt. T{ .sp -assert2 +[assert2] T}:T{ .sp -http://assert2\&.rubyforge\&.org +\m[blue]\fBhttp://assert2\&.rubyforge\&.org\fR\m[] T} T{ .sp -Attest +[Attest] T}:T{ .sp -http://gsinclair\&.github\&.com/attest\&.html +\m[blue]\fBhttp://gsinclair\&.github\&.com/attest\&.html\fR\m[] T} T{ .sp -Inochi +[Bundler] T}:T{ .sp -http://snk\&.tuxfamily\&.org/lib/inochi/ +\m[blue]\fBhttp://gembundler\&.com\fR\m[] T} T{ .sp -Minitest +[Inochi] T}:T{ .sp -http://blog\&.zenspider\&.com/minitest/ +\m[blue]\fBhttp://snk\&.tuxfamily\&.org/lib/inochi/\fR\m[] T} T{ .sp -OrderedHash +[Minitest] T}:T{ .sp -http://rubygems\&.org/gems/orderedhash +\m[blue]\fBhttp://blog\&.zenspider\&.com/minitest/\fR\m[] T} T{ .sp -RSpec +[OrderedHash] T}:T{ .sp -http://rspec\&.info +\m[blue]\fBhttp://rubygems\&.org/gems/orderedhash\fR\m[] T} T{ .sp -ruby\-debug +[RSpec] T}:T{ .sp -http://github\&.com/mark\-moseley/ruby\-debug +\m[blue]\fBhttp://rspec\&.info\fR\m[] T} T{ .sp -RubyGems +[ruby\-debug] T}:T{ .sp -http://rubygems\&.org +\m[blue]\fBhttp://github\&.com/mark\-moseley/ruby\-debug\fR\m[] T} T{ .sp -Ruby +[RubyGems] T}:T{ .sp -http://ruby\-lang\&.org +\m[blue]\fBhttp://rubygems\&.org\fR\m[] T} T{ .sp -Test::Unit +[Ruby] T}:T{ .sp -http://ruby\-doc\&.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit\&.html +\m[blue]\fBhttp://ruby\-lang\&.org\fR\m[] T} T{ .sp -Testy +[Test::Unit] T}:T{ .sp -http://github\&.com/ahoward/testy/tree/master +\m[blue]\fBhttp://ruby\-doc\&.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit\&.html\fR\m[] T} T{ .sp -Verify +[Testy] T}:T{ .sp -http://www\&.ruby\-forum\&.com/topic/183354 +\m[blue]\fBhttp://github\&.com/ahoward/testy/tree/master\fR\m[] T} T{ .sp -xUnit +[Verify] T}:T{ .sp -http://en\&.wikipedia\&.org/wiki/XUnit +\m[blue]\fBhttp://www\&.ruby\-forum\&.com/topic/183354\fR\m[] T} +T{ +.sp +[xUnit] +T}:T{ +.sp +\m[blue]\fBhttp://en\&.wikipedia\&.org/wiki/XUnit\fR\m[] +T} .TE .sp 1 +.SH "NOTES" +.IP " 1." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#T-class_method +.RE +.IP " 2." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#F-class_method +.RE +.IP " 3." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#N-class_method +.RE +.IP " 4." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#E-class_method +.RE +.IP " 5." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#C-class_method +.RE +.IP " 6." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#T%21-class_method +.RE +.IP " 7." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#F%21-class_method +.RE +.IP " 8." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#N%21-class_method +.RE +.IP " 9." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#E%21-class_method +.RE +.IP "10." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#C%21-class_method +.RE +.IP "11." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#T%3F-class_method +.RE +.IP "12." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#F%3F-class_method +.RE +.IP "13." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#N%3F-class_method +.RE +.IP "14." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#E%3F-class_method +.RE +.IP "15." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#C%3F-class_method +.RE +.IP "16." 4 +The D() method +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#D-class_method +.RE +.IP "17." 4 +The D!() method +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#D%21-class_method +.RE +.IP "18." 4 +The S() method +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#S-class_method +.RE +.IP "19." 4 +The S!() method +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#S%21-class_method +.RE +.IP "20." 4 +The S?() method +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#S%3F-class_method +.RE +.IP "21." 4 +The I() method +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#I-class_method +.RE +.IP "22." 4 +The I!() method +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#I%21-class_method +.RE +.IP "23." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#%3C-class_method +.RE +.IP "24." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#%3E-class_method +.RE +.IP "25." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#%3C%3C-class_method +.RE +.IP "26." 4 +API documentation +.RS 4 +\%http://snk.tuxfamily.org/lib/detest/api//Detest.html#%3E%3E-class_method +.RE +.IP "27." 4 +lib/detest/spec.rb:21 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/spec.rb#L21 +.RE +.IP "28." 4 +lib/detest/spec.rb:10 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/spec.rb#L10 +.RE +.IP "29." 4 +lib/detest.rb:1166 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest.rb#L1166 +.RE +.IP "30." 4 +lib/detest/unit.rb:26 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L26 +.RE +.IP "31." 4 +lib/detest/unit.rb:31 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L31 +.RE +.IP "32." 4 +lib/detest/unit.rb:36 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L36 +.RE +.IP "33." 4 +lib/detest/unit.rb:47 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L47 +.RE +.IP "34." 4 +lib/detest/unit.rb:52 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L52 +.RE +.IP "35." 4 +lib/detest/unit.rb:57 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L57 +.RE +.IP "36." 4 +lib/detest/unit.rb:67 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L67 +.RE +.IP "37." 4 +lib/detest/unit.rb:62 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L62 +.RE +.IP "38." 4 +lib/detest/unit.rb:77 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L77 +.RE +.IP "39." 4 +lib/detest/unit.rb:82 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L82 +.RE +.IP "40." 4 +lib/detest/unit.rb:86 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L86 +.RE +.IP "41." 4 +lib/detest/unit.rb:72 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L72 +.RE +.IP "42." 4 +lib/detest/unit.rb:95 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L95 +.RE +.IP "43." 4 +lib/detest/unit.rb:91 +.RS 4 +\%http://github.com/sunaku/detest/tree/master/lib/detest/unit.rb#L91 +.RE +.IP "44." 4 +ruby-wrapper +.RS 4 +\%http://github.com/chneukirchen/rup/blob/master/ruby-wrapper +.RE +.IP "45." 4 +This feature was requested +.RS 4 +\%http://github.com/sunaku/dfect/issues/1 +.RE +.IP "46." 4 +be nice +.RS 4 +\%http://loiclemeur.com/english/2009/03/never-criticize-your-competitors.html +.RE +.IP "47." 4 +Sean O\(cqHalpin\(cqs musing +.RS 4 +\%http://www.ruby-forum.com/topic/183354#801895 +.RE +.IP "48." 4 +sunaku@gmail.com +.RS 4 +\%mailto:sunaku@gmail.com +.RE