doc/src/index.page in rspec-0.5.3 vs doc/src/index.page in rspec-0.5.4

- old
+ new

@@ -1,7 +1,74 @@ --- -title: Overview +title: Overview inMenu: true ---- +--- + +h2. Behaviour Driven Development + +Test Driven Development (TDD) has you define the behaviour of your system by +writing small tests that precisely define some small piece of your system's +behaviour. Then you implement that behaviour. Then you clean up & improve your +design. + +At least that's how you're supposed to do it. + +This focus on behaviour is the real value in TDD, and marks the genuinely +experienced TDD practitioner. + +However, with the ubiquity of testing related terminology in TDD and it's +supporting frameworks, it is no surprise that it takes beginners some time to +get to the understanding that TDD isn't about testing at all... if they ever +do. + +The aim of BDD is to address this shortcoming and, by using terminology +focused on the behavioural aspects of the system rather than testing, attempt +to help direct developers towards a focus on the real value to be found in TDD +at its most successful, or BDD as we call it. + +(paraphrased from "behaviour-driven.org":http://behaviour-driven.org) + +Dan North, who was the first to coin the term BDD, and who has been actively +refining it since, started promoting BDD in 2003. "JBehave":http://jbehave.codehaus.org/ +was the first BDD framework to support this new thinking. + h2. RSpec -bla bla bla +RSpec is a framework for practicing __Behaviour Driven Development__ (BDD) in Ruby. + +It all started with a blogpost +("A New Look at Test Driven Development":http://blog.daveastels.com/articles/2005/07/05/a-new-look-at-test-driven-development) +of Dave's where he talked about his ideas for BDD and a BDD framework. One thing he mentioned was that his ideas +would be easily implemented in Smalltalk, and probably Ruby. + +Steven Baker wrote the first version of the rspec core. Dave added mock support (initially inspired from Schmock by +Ben Griffiths). Dave and David had met & talked about BDD at Agile'05 just after Dave's blog +post (above). David started thinking about a BDD framework in C#. As fate, or +the gods, would have it Dave & David ended up working at the same client in +the greater Chicago area, allowing them to explore some ideas resulting in the totally rewriting of the expectation mechanism. +Aslak joined in and the three rewrote the higher level syntax and the core, reworking RSpec into what you see now: + +<ruby> +context "BDD framework" do + + setup do + @bdd_framework = BddFramework.new + end + + specify "should be adopted quickly" do + @bdd_framework.should.be.adopted_quickly + end + + specify "should be intuitive" do + @bdd_framework.should.be.intuitive + end + +end +</ruby> + +RSpec provides a framework for writing what we call __executable +specifications of program behaviour__. Since that's rather wordy, we usually +just call them __specs__. +"Some other people":http://www.testing.com/cgi-bin/blog/2006/04/12#spec-vs-example call these things __examples__. + +On this site you will find examples, documentation, and tutorials as well as +links to download and community resources.