Behavior-Driven Development (BDD) is sort of similar to TDD, but you can focus on testing the behavior of your app instead. The main difference is the way the tests are written. Using XCTest, you mainly use the method name to describe what the test does. BDD frameworks usually allow you to write the expected behavior as a text string and therefore make the tests easier to read.
It is often said that the tests become so clear that people who are not familiar with programming can write them. Here is an example that uses the Quick framework and its matcher framework, Nimble:
class ToDoItemSpec: QuickSpec { override func spec() { describe("to-do item") { it("can be created with a title") { let item = ToDoItem(title: "Test title") expect(item).toNot(beNil()) } ...