Skip to content
/ brine Public

Cucumber-style BDD testing framework for iOS 🥒

License

Notifications You must be signed in to change notification settings

aaronsky/brine

Repository files navigation

Brine

Build Status Documentation Coverage

A Cucumber-inspired BDD testing framework intended for use with Swift and Xcode UI Testing. Uses Gherkin feature syntax for associating plain language to reusable step definitions.

Features

  • 💻 Integration with Xcode Test Navigator
  • 📱 Full support for Xcode UI Testing without additional runtime requirements
  • ⏩ Designed for Gherkin features
  • 🥒 Parity with the Cucumber API specification
  • 🔖 Swift reimplementation of the Cucumber Tag Expression parser

Coming Soon

  • 📦 Supports Carthage, Swift PM and CocoaPods!

Install

Package manager support coming soon. Please stay tuned for the first tagged release!

Usage

Write your feature file:

Feature: Test my great app with BDD

Scenario: Do the first test
    Given I am on the Home page
    When I tap the Add button
    Then nothing

Define your steps:

given("I am on the (.*) page") { context in
    let pageName = context.matches[0]
    XCTAssertEqual(pageName, "Home")
}

when("I tap the (.*) button") { context in
    context.pending()
}

then("nothing") { context in
    print("Do nothing")
}

Run your tests!

let brine = Brine()
brine.start()

API

Coming soon

Contributing

Hey, thanks for getting this far! If you'd like to contribute to Brine, please check out our CONTRIBUTING page before jumping in.

Dependencies

License

Apache © Aaron Sky

About

Cucumber-style BDD testing framework for iOS 🥒

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published