FitNesse in Fifty Minutes

Preview:

DESCRIPTION

FitNesse in Fifty Minutes. Chris Harbert Resonate. What is FitNesse ?. FitNesse is an open source collaboration and testing framework based on the wiki concept . - PowerPoint PPT Presentation

Citation preview

FitNesse in Fifty Minutes

Chris HarbertResonate

1

What is FitNesse?

FitNesse is an open source collaboration and testing framework based on the wiki concept.

Written by Robert Martin (a.k.a “Uncle Bob”), a software consultant and prolific author who was one of the original signers of the “Agile Manifesto”.

2

What is FitNesse?Wiki pages are suites, tests, or static pages.

Suites are organized into hierarchies.

• TestSuites• TestSuites.SuiteOne

• TestSuites.SuiteOne.TestOne• TestSuites.SuiteOne.TestTwo

You can run at the suite level or at the test level.

http://yourfitnesseurl/TestSuites.SuiteOne?suitehttp://yourfitnesseurl/TestSuites.SuiteOne.TestOne?test

3

When to use FitNesse?

4Collaboration

You want to encourage more collaboration around requirements and testing.** Results not typical.

When to use FitNesse?

5Documentation

You want your tests to serve as documentation. The good kind.

When to use FitNesse?

6Share the love

You want to provide the ability to write automated tests to a technical, but non-developer audience.

Example #1: Web Test (BDD)

7

Example #1: Web Test (BDD)

8

Example #2: Database/ETL

9

Example #3: Compare Excel Files

10

Example #4: Compare Query to Excel

11

Example #5: Verify Excel File Contents

12

Example #6: Taking Screenshots

13

Example #7: HBase

14

Other Fixtures• CSV File• REST API• Command Line / SSH• JIRA (e.g. to assert the ticket status)• PDF• Check Email

15

Creating Your First Fixture

Steps1. Identify a test (or create one) that needs a fixture

implemented.2. Select the appropriate fixture type.*3. Implement the methods that fixture type expects.4. Run the test.

* Fixtures can actually implement multiple fixture types simultaneously. In some cases, existing classes can be used as is.

16

The Basic Fixture TypesDecision Table Supplies the inputs and outputs for decisions. This is

similar to the Fit Column Fixture

Query Table Supplies the expected results of a query. This is similar to the Fit Row Fixture

Subset Query Table Supplies a subset of the expected results of a query.

Ordered query TableSupplies the expected results of a query. The rows are expected to be in order. This is similar to the Fit Row Fixture

Script Table A series of actions and checks. Similar to Do Fixture.

Table Table Whatever you want it to be!Import Add a path to the fixture search path.Comment A table that does nothing.

Scenario Table A table that can be called from other tables.

Library Table A table that installs fixtures available for all test pages

Define Table Type A helper table that defines the default table type for named fixtures.

17

Source: FitNesse User Guide

Options for Running Tests• From the UI• From the Command Line• Using the web URLs• … with HTML response• … with XML response useful for integration w/ build servers,

TCM systems, etc.

18

Additional Cool Stuff and Tips• Suite filters allow you to run any tests with a given tag.• Symbols can be used to pass data around.• Use SLIM tables, not older fixtures.• Use collapsed sections to hide setup and teardown in order to

increase readability.

19

When NOT to use FitNesse?• You’re writing fine-

grained unit tests. • Only developers will

see them.• No one can write

fixtures.

20

Caveats• Requires developers to provide appropriate fixtures (which

may be re-usable by non-developers).• No parallel runs (out of the box ;) ).• Is FitNesse dead?

21

Resources• The website, http://fitnesse.org/• The User Guide (included in link of install)• The repo, https://github.com/unclebob/fitnesse

22