README in quarry-0.5.0 vs README in quarry-0.5.2
- old
+ new
@@ -13,72 +13,78 @@
== Features
=== Specifications
-Quarry's BBD system is uniqe in a few ways. First it utilizes
-Ruby's Execption system to catch Assertions which are defined
-via assertion <i>functors</i>. Eg.
+Quarry's BDD/TDD system is uniqe in a few ways. First it utilizes
+Ruby's Execption system to catch Assertions which are defined via
+assertion <i>functors</i>. Eg.
- require 'quarry/assertion'
-
4.assert == 5
Because 4 != 5, this expression will raise an Assertion exception.
-Quarry's Specification Runner class is thus just a means of
-running and capturing these assertions.
+Quarry's Specification Runner class is thus just a means of running
+and capturing these assertions.
-Quarry's Specifications themselves are simple text files, a practice
+While we used TDD teminology in the above example, Quarry supports
+a range of momenclature to suit the preferences of TDD vs. BDD
+developers. The abot could just as well been written as:
+
+ 4.should == 5
+
+or
+
+ 4.expect == 5
+
+These are effecitvely the same. For the most part the different terms
+do exactly the same thing. Somtimes though they differ to conform with
+the TDD vs. BDD prespective they intend to support.
+
+Quarry's Specifications themselves are simple text files --a practice
of literal programming.
Example Specification
=====================
+
Shows that the number 5 does not equal 4.
- 5.assert! == 4
+ 5.should! == 4
But in fact equals 5.
- 5.assert == 5
+ 5.should == 5
- QED.
+If we run this specification in verbatim mode the output would be identical
+(assuming we did not make a typo and the assertions passed). If there were
+errors or failures, we would see information detaling each.
-If we run this specification in verbatim mode the output would identical
-(assuming we did not make a type and the assertions passed).
-If there were errors or assertion failures, we would see information
-detaling each.
-
-As you can see I used Markdown for my spcecification. You can use almost any
-format you like. The only neccesary distiction is that desciption text be
+As you can see, we used Markdown for this spcecification. Almost any
+format can be used. The only neccesary distinction is that desciption text be
align to the left margin and all specification code be indented. Quarry also
-recognized headers, currently Markdown and RDoc style headers (We'll add
-Textile soon.)
+recognized headers, currently Markdown and RDoc style headers, which covers
+most markup foramts in common use today. While strictly speaking Qaurry
+does not need to recognize headers, it does improve console output a bit
+if it does.
-We'll leave discussion of the merits of this system to another place. But
-it should be clear that this approach if especcailly conveniant, allowing
-documentation and specification to seemlessly merge.
+Give this design some though. It should become clear that this approach if
+especially fruitful in that it allows documentation and specification to
+seemlessly merge.
-=== Stubs
+=== Stubs, Mocks and Spies
-Quarry provides a flexible stubbing facility.
+Quarry provides a flexible stubbing and mocking facility.
For now see RDoc API.
-
-=== MethodProbe
-
-MethodProbe (aka the Duck Hunter) can dip-down into a method and
-provide a read-out how it functions --known as a <i>method signiture</i>.
-MethodProbe is somewhat expiremental becuase it is runtime bound, so proper
+The Spy/Probe (aka the Duck Hunter) can dip-down into a method and
+provide a read-out how it functions --known as a <i>method signature</i>.
+Probe is somewhat expiremental becuase it is runtime bound, so proper
execution can not be 100% guarenteed. It can miss some parts of a method
-due to conditional branching (a probe can;t pretend to be false) and,
+due to conditional branching (a probe can't pretend to be false) and,
albiet rare, it can also get stuck in an infinite loop a la the
Halting Problem. Even so, it can be used effectively under controlled
situations if used with care.
-
-
-=== More to come ....
== Copying
Copyright (c) 2007, 2008 Tiger Ops / Thomas Sawyer