Your SlideShare is downloading. ×
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

FIT and JBehave - Good, Bad and Ugly

4,248

Published on

A 6 minute lightning talk at Sep 2, 2010 Practical Agility session in Minneapolis MN (DevJam). …

A 6 minute lightning talk at Sep 2, 2010 Practical Agility session in Minneapolis MN (DevJam).

Notes available in the PPTX.

Published in: Technology
4 Comments
1 Like
Statistics
Notes
  • @Armen - reporting was greatly enhanced after the presentation. I worked through this with Mauro. The issues used to be that getting access to the FTL files was near impossible back in the day. This has all been worked out now.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • whats wrong with reporting in JBehave? Also, I run tests using JUnitRunner...
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @mike-at-gd - yes, those were added after this presentation - I'm actually a big fan of (and contributor to) JBehave so part of my criticisms were for things that I knew it needed
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • #22 is not absolutely right
    http://jbehave.org/reference/stable/meta-filtering.html here is the tags
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
4,248
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
67
Comments
4
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Both are ATDDBoth are pure JavaThey are the only 2 that I’ve worked with on projects
  • FIT is the core library – HTML tables as data – parsing the table calls into a Fixture object’s methodsFITlibrary / SLIM – libraries for fixture developmentFitness – a test management and execution tool
  • FIT input is HTML tables and output is HTML tables (styled)
  • Table/Row/Column maps to method in fixture class
  • Fitnesse is a wiki – allows for add/edit/delete/run as well as meta/text for tests
  • Easy to use – has been around for a while
  • Easy to drive a web UI with SeleniumFixtureEasy to populate or verify database state with DBFit
  • Partitioning your tests in Fitnesse by “state” is toughTag/Branch test w/ code is tough with FitnesseFitnesse creates zip files for versioning
  • Want to code test based on functionality and not UIDB is pre/post conditionToo brittle for refactoring – want to use the fixtures in my own fixtures
  • Hard to think in “tables” (particularly when they are parsed differently)
  • Model is not Table, Row and Column which are all ParseableAll are modeled as a ParseParse is a verb not a noun – really hard to read the APISurprisingly, the FIT code was listed in one book as a “superbly designed API”In the end – its hard to write fixtures
  • Spend lots of time on the “design of the fixture” rather than the actual tests
  • JBehave 3 in particular
  • Story text is plain-text (UTF-8) with i18n’d keywordsScenarios are Given/When/Then format
  • Steps classes are POJOs with annotated @Given(regex), @When(regex), @Then(regex) methodsRegex is matched against text in the storySteps classes are like a library of fixtures
  • Story class can map the Story text to the set of Steps classes needed for itCan also be used to say when a story is “included in the execution suite”
  • Tests don’t run until Story class exists (one way to run)Scenarios are used to define done – and can actually be written early
  • JBehave can load the story text from anywhere – any source that BA/QA folks use (and can be versionable)
  • Some strange use of fluent language and builder patternsStrange API around Embedder and Embeddable
  • No tags per story / scenario (yet)Useful for conditional execution
  • Have to do this by hand – built-in reporting types require custom code (see examples)
  • A story (with all its scenarios) is one test methodCan’t run just one scenarioNo ability to monitor like JUnit/TestNG does for test classes/methods
  • Transcript

    • 1. FIT and JBehaveThe Good, the Bad and the Ugly
      Practical Agility
      Lightning Talk
      Sep 2, 2010
    • 2. Why These Two?
    • 3. FIT
      FITLibrary / SLIM
      Fitnesse
    • 4. HTML Tables In
      HTML Tables Out
    • 5. Fixtures
    • 6. Wiki
    • 7. Ease of Use
    • 8. Existing Features
      (Selenium, DBFit)
    • 9. Versioning
      Partitioning
    • 10. Low-Level Fixtures
    • 11. Stakeholder Readability
    • 12. MethodNamesThatGoOnForeverOrUntilThePropsEnd
    • 13. The “Parse” Problem
    • 14. Difficult to do Test First
    • 15. JBehave
    • 16. Plain-Text Story
      Given/When/Then
      (Story and Scenarios)
    • 17. Steps Classes with
      Annotations / Regex
    • 18. Story Class (optional)
      as bridge from
      Story (text) to Steps
    • 19. Flow for Agile
      (Test First)
      (Defines Done)
    • 20. Text From Anywhere
    • 21. Configuration API
      Oddities
    • 22. No Tags for You!
    • 23. Reporting
    • 24. ! (JUnit | TestNG)
    • 25. What features would
      the ideal ATDD framework have?

    ×