Swiftest 是 Swift 编程语言一个 BDD 风格的规范框架。
示例代码:
import Swiftest // create a class that inherits from SwiftestSuite (it's just NSObject) // and define the 'spec' member property of that class using `describe` // be sure to use `let` and not `var` here! class SampleSpec : SwiftestSuite { let spec = describe("Swiftest") { it("adds 1 + 1!") { expect(1 + 1).toEqual(2) } it("knows true from false!") { expect(true).toBeTrue() expect(true).not().toBeFalse() } example("comparing letters of the alphabet!") { expect("abc").toEqual("abc") } it("knows what stuff is NOT other stuff!") { expect(2 + 2).not().toEqual(5) } describe("arrays!") { example("special assertions for array types!") { expect([1, 2, 3]).toEqual([1, 2, 3]) expect([1, 2, 3]).toContain(1) expect([1, 2, 3]).toContain(1, 3) } } it("does nifty stuff with closures") { var a = 0 expect({ a += 1 }).toChange({ a }).to(1) expect({ a += 1 }).toChange({ a }).from(1).to(2) expect({ a += 2 }).toChange({ a }).by(2) } example("dictionaries have special assertions too!") { expect([ "key" : "val" ]).toEqual([ "key" : "val"]) expect([ "key" : "val" ]).toHaveKey("key") expect([ "key" : "val" ]).toHaveValue("val") } example("your own classes!") { // Person is a class that implements Comparable let person1 = Person(name: "Bob") let person2 = Person(name: "Alice") expect(person1).not().toEqual(person2) } } }