Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. BDD Testing Tools
  3. Kiwi

Kiwi

What it is

Kiwi is a free Behavior Driven Development library for iOS development. Developers write specs in Objective-C and run them within Xcode, organizing examples with describe, context, and it blocks. The project aims to make those specs more readable than tests written with the bundled test framework. Its official GitHub wiki provides reference material on expectations, mocks and stubs, and asynchronous testing. The README includes installation instructions for CocoaPods and Carthage, and the podspec declares XCTest as a framework dependency. Deployment targets are iOS 8.0 and OS X 10.8. The wiki identifies Kiwi 2.0 as the most recent version and says it is in active development; Kiwi 1.0 is legacy and no longer updated. The repository provides a BSD 3-Clause license, subject to its stated conditions, and disclaims express and implied warranties. The project supports Gherkin and runs locally, but does not provide browser testing or API access. The README points questions and suggestions other than bug reports to the Google Group; bug reports and feature requests go to GitHub issues.

For and against

For

  • Free to use
  • Specs run within Xcode
  • Installation instructions for CocoaPods and Carthage
  • Documentation covers expectations and asynchronous testing
  • Kiwi 2.0 is in active development

Against

  • Specs are written in Objective-C
  • No browser testing
  • No API access
  • Kiwi 1.0 is legacy and no longer updated

The verdict

Kiwi offers an Xcode-centered BDD approach with installation guidance and documentation for several testing topics. Developers should distinguish actively developed Kiwi 2.0 from legacy Kiwi 1.0.

Who it suits

Kiwi suits iOS developers looking for an Objective-C BDD library that runs in Xcode. It may appeal to teams that prefer structured specs and need reference material for expectations, mocks, stubs, or asynchronous testing.

On the record

Asynchronous testing
The official wiki lists asynchronous testing among its reference topics.github.com · read 7 Oct 2026
Documentation
The project identifies its GitHub wiki as the official documentation source.github.com · read 7 Oct 2026
Documentation status
The wiki identifies itself as the official documentation and says Kiwi 1.0 is legacy and no longer updated.github.com · read 8 Oct 2026
Expectations
The official wiki includes reference material for expectations.github.com · read 7 Oct 2026
Framework
The podspec declares XCTest as a framework dependency.github.com · read 8 Oct 2026
Installation
The README documents installation through CocoaPods or Carthage.github.com · read 8 Oct 2026
Intended users
Kiwi is intended for iOS developers seeking a BDD library that integrates with Xcode.github.com · read 7 Oct 2026
Language and environment
Specs are written in Objective-C and run within Xcode.github.com · read 7 Oct 2026
Language and IDE
Specs are written in Objective-C and run within Xcode.github.com · read 8 Oct 2026
License
The repository includes a BSD 3-Clause license.github.com · read 8 Oct 2026
Mocks and stubs
The official wiki includes reference material for mocks and stubs.github.com · read 7 Oct 2026
Platform targets
The podspec sets deployment targets of iOS 8.0 and OS X 10.8.github.com · read 8 Oct 2026
Purpose
Kiwi is a Behavior Driven Development library for iOS development.github.com · read 8 Oct 2026
Readable specs
The project says Kiwi aims to make tests more readable than those possible with the bundled test framework.github.com · read 8 Oct 2026
Spec structure
The README shows specs organized with describe, context, and it blocks.github.com · read 7 Oct 2026
Support
The README directs questions and suggestions other than bug reports to the Google Group, while the wiki directs bug reports and feature requests to GitHub issues.github.com · read 8 Oct 2026
Test capabilities
The official documentation lists specs, expectations, mocks and stubs, and asynchronous testing as reference topics.github.com · read 8 Oct 2026
Version status
The wiki says Kiwi 2.0 is the most recent version and in active development, while Kiwi 1.0 is legacy and no longer updated.github.com · read 7 Oct 2026

The review

Kiwi is a Behavior Driven Development library for iOS development, with specifications written in Objective-C and executed inside Xcode. It suits iOS teams that want structured, readable BDD tests while staying close to Apple’s development tools. Its free distribution and focused documentation make it practical for local Xcode projects, provided your team is comfortable with Objective-C and the project’s version history.

Overview

Kiwi replaces the less expressive style of a bundled test framework with a BDD-oriented specification model. The README demonstrates tests built from describe, context, and it blocks, giving scenarios a hierarchy that can be easier to scan and discuss than procedural test code. Specs run locally within Xcode, so Kiwi fits teams already managing iOS tests in that environment rather than teams seeking a separate browser or hosted testing service.

The project supports Gherkin and targets iOS and macOS. Its podspec declares XCTest as a dependency and sets deployment targets of iOS 8.0 and OS X 10.8, making those the stated baseline targets for the library configuration.

Key features

Readable BDD specifications

Objective-C specs use nested descriptive blocks to express behavior and context. This structure can make failures and intent easier to relate to product behavior, especially when several conditions share a setup. The trade-off is that your tests remain tied to Objective-C and Xcode rather than a language-neutral, standalone specification runner.

Expectations, mocks, and stubs

Kiwi’s official wiki provides reference material for expectations, mocks, and stubs. Those topics cover the core mechanics needed to assert outcomes and isolate collaborators in unit-level BDD tests. Readers should treat the wiki as the working reference when building a team’s conventions around doubles and assertions.

Asynchronous testing

Asynchronous testing is included among the wiki’s reference topics. That matters for iOS code involving delayed or callback-driven behavior, although Kiwi remains a local test library rather than a service that executes tests remotely.

Installation and documentation

The README provides installation instructions for CocoaPods and Carthage. The GitHub wiki is identified as the official documentation source, while the README sends questions and suggestions other than bug reports to a Google Group. Bug reports and feature requests go through GitHub issues, giving contributors separate paths for support and project changes.

Pricing

Kiwi is offered on a free plan. There are no paid tiers, seat charges, usage quotas, trial periods, or renewal terms stated for the project. That makes it suitable for individual developers and teams that want to add BDD without a software subscription; the trade-off is that support is community-oriented through the Google Group and GitHub issues rather than a commercial support plan.

Platforms

Kiwi supports iOS and macOS, with specs written in Objective-C and run in Xcode. It is a local execution library, not a browser-testing product, and it does not provide API access. Teams standardizing on web, cross-platform, or hosted test execution will need a different tool.

Who it's for

Kiwi is aimed at iOS developers seeking a BDD library integrated with Xcode. It is a good fit when readable, nested behavior descriptions and familiar Apple test tooling matter more than a hosted dashboard or broad language coverage. It is less suitable for teams that avoid Objective-C, require browser testing, or want an API-driven execution service.

Pros and cons

  • Pros: Free to use, so adoption does not add licensing cost.
  • Pros: Describe/context/it organization gives specifications a clear behavioral hierarchy.
  • Pros: Expectations, mocks, stubs, and asynchronous testing are covered in the official wiki.
  • Pros: CocoaPods and Carthage installation guidance supports common Xcode project setups.
  • Cons: Specs are written in Objective-C and run in Xcode, limiting teams that prefer other languages or environments.
  • Cons: There is no browser testing or API access, so Kiwi cannot serve as a general remote automation platform.
  • Cons: The documentation distinguishes actively developed Kiwi 2.0 from legacy Kiwi 1.0; projects must avoid adopting the unmaintained line.
  • Cons: The BSD 3-Clause license provides the software “AS IS” and disclaims express and implied warranties.

Alternatives

Cucumber Open is the better choice when you need free BDD tooling across Android, API, Linux, macOS, and Windows, with Cucumber Reports included at no charge.

Serenity BDD suits teams needing a free library spanning Android, iOS, Linux, macOS, self-hosted, web, and Windows environments; its JUnit 4 support is deprecated and planned for removal in Serenity 6.0.0.

BddDotNet is a free, MIT-licensed option for Linux, macOS, and Windows projects rather than Objective-C/Xcode work.

Concordion is a free Java library under Apache License 2.0 for Linux, macOS, self-hosted, and Windows deployments.

FitNesse is a free open-source project for API, Linux, macOS, self-hosted, web, and Windows use, with no commercial plans or limits stated.

Ginkgo is a free Go testing framework for Linux, macOS, and Windows; its current supported major version is v2.

BDDX is the alternative when you want a web service with usage-based plans: Start allows up to 50 runs per month free, while Grow costs $9.99 a month for 51–250 runs and Accelerate costs $14.99 a month for 251–500 runs.

Behat is free software for Linux, provided without warranty.

For more options, browse the BDD Testing Tools list.

Verdict

Choose Kiwi if you are an iOS or macOS developer who wants a free, Xcode-centered BDD library with readable Objective-C specs and references for expectations, test doubles, and asynchronous behavior. Look elsewhere if you need browser or API testing, a hosted execution platform, or a language other than Objective-C; also make sure new work uses the actively developed Kiwi 2.0 line rather than legacy Kiwi 1.0.

Alternatives to Kiwi

Every alternative, ranked