My Book <Instant Cucumber BDD How-to>
The background
I received an email during November 2012 from Packt, in the email they asked me whether or not consider writing a book for them related with BDD using Cucumber based on Rails platform, the book will only contains 50-70 pages, they named this kind of book "Instant book", usually it is a quick guide for beginners using some kinds of technologies. Well, my first reaction was: "Wow, I even never thought about writing a book, if I am going to write one, hum... can I?", I did suspect myself a little bit, especially, the book will be written in English, I admitted I was not confident enough to reply them.
Actually I could imagine how hard this would be for me, a rookie who would write his first book, and at that period I was about to finish my 6 months business trip in Xi'an and would be back to ThoughtWorks Shanghai office soon, too many things... However, I am kind of person who always expects challenges, and always willing to improve and beyond myself! I decided to give it a try!
The process
As soon as replied their email, the game kicked off, and I soon felt the pressure, Packt asked me to give them a skeleton of the book within three days, whereas 95% of my daily work was pair programming, and the rest 5% was meeting:) I had no choice but utilizing all my spare time, and I need my family's support, especially my son's support:)
I worked out a skeleton and sent to Packt in time, I decided to write this book with not only easy guidance and tutorials, but also with technical explanation in depth!
I decided to use my free Bitbucket git repository to store my book, the drafted skeleton was submitted by me on Dec 07 2012, there had been many changes after the final publish, but this was really the first step!
Writing BDD specifications of what the application should do, and what to think about Writing the specification you have in the Cucumber/Ruby format Running the application at this stage, watching it fail and using the results to figure out what needs to be done Writing the code to make it pass Running the program again for the tests to pass Table of Contents Recipe 1 The Concept of Behavior Driven Development Page Count: 3 What is it? Exhaustively describe the basic concept of BDD, its history (how it appears). Borrows the concept of the ubiquitous language from DDD Why it matters? Explain the benefits of BDD, how it can empower your software development, and thus has positive impact for your business value and MMF (Minimum Marketable Features). Iron the gap between developers and business analyst, less misunderstanding. YAGNI Who use it? List the BDD implementation status in many different platforms/languages, and list a number of famous software giants who adopt BDD. Recipe 2 Cucumber in a nutshell Page Count: 2 Gherkin Features/Scenarios/Steps Programming languages support Recipe 3 Practice in Action Page Count: 5 Cucumber setup Your first feature The BDD pattern A concrete example Recipe 4 Expressive Gherkin Page Count: 8 Define a background for scenarios Outline related attributes in table Using Scenario Outline Using tags Doc strings Recipe 5 How to write good steps Page Count: 5 Use flexible pluralization Step Argument Transforms Use non-capturing groups Define method Compound steps Hooks Recipe 6 Delve into step implementation Page Count: 12 Integration with Rails DOM manipulation JavaScript/Ajax RESTful web services Recipe 7 Cucumber with 3rd party libraries Page Count: 10 RCov Pickle WebMock Capybara Chronic Recipe 8 Cucumber Best practices Page Count: 8 Readability Declarative step over imperative step Maintainable Don't Repeat Yourself (A.K.A DRY) Recipe 9 A comprehensive example Page Count: 15 Recipe 10 Learning Resources Page Count: 2 Total pages 60
The result
Most recent commits on Bitbucket:)
Leave a comment