Yo recomendaría la combinación Quick / Nimble. En el momento de escribir esta respuesta, Quick tiene 5.796 estrellas en Github y dicen que más de mil aplicaciones lo están usando, así que no puedes equivocarte usándolos.
Quick es un framework de desarrollo orientado al comportamiento para Swift y Objective-C, inspirado en RSpec, Specta y Ginkgo. Nimble es un framework de matchers, compañero de Quick, que sirve para expresar tus pruebas usando un DSL muy cercano al inglés fluido. 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())
- }
- }
- }
- }
- }