Je recommanderais la combinaison Quick / Nimble. Au moment où j'écris cette réponse, Quick a 5,796 étoiles dans Github et ils disent que plus de mille applications l'utilisent, donc vous ne pouvez pas vous tromper en les utilisant.
Quick est un framework de développement orienté comportement pour Swift et Objective-C, inspiré par RSpec, Specta et Ginkgo. Nimble est un framework de matcher, compagnon de Quick, utilisé pour exprimer vos tests en utilisant un DSL très proche de l'anglais courant. It supports a lot of built-in matcher functions, asynchronous expectations, and the possibility of writing your own matchers.
Here you have an example of test code (taken directly from their wiki):
- // Swift
- import Quick
- import Nimble
- class TableOfContentsSpec: QuickSpec {
- override func spec() {
- describe("the 'Documentation' directory") {
- it("has everything you need to get started") {
- let sections = Directory("Documentation").sections
- expect(sections).to(contain("Organized Tests with Quick Examples and Example Groups"))
- expect(sections).to(contain("Installing Quick"))
- }
- context("if it doesn't have what you're looking for") {
- it("needs to be updated") {
- let you = You(awesome: true)
- expect{you.submittedAnIssue}.toEventually(beTruthy())
- }
- }
- }
- }
- }