SwiftestSwift 的 BDD 测试框架
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)
    }
  }
}评论
