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())
- }
- }
- }
- }
- }