FitNesse in Fifty Minutes Chris Harbert Resonate 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
When to use FitNesse? 4 Collaboration You want to encourage more collaboration around requirements and testing.* * Results not typical.
When to use FitNesse? 5 Documentation You want your tests to serve as documentation. The good kind.
When to use FitNesse? 6 Share 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
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 15
Creating Your First Fixture Steps 1.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 Types Decision 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 TableSupplies a subset of the expected results of a query. Ordered query Table Supplies the expected results of a query. The rows are expected to be in order. This is similar to the Fit Row Fixture Script TableA series of actions and checks. Similar to Do Fixture. Table Whatever you want it to be! ImportAdd a path to the fixture search path. CommentA table that does nothing. Scenario TableA table that can be called from other tables. Library TableA 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? Youre 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, The User Guide (included in link of install) The repo, 22