Gherkin 0.6

Gherkin 0.6

Mango fever 维护。



  • mangofeverr

iOS-Gherkin

iOS-Gherkin是一个库,它包装了Quick (https://github.com/Quick/Quick)

配合Quick

class AdderSpec: QuickSpec {
  override func spec() {
    describe("Adder") {
      var adder: Adder!
      beforeEach {
          adder = WeirdAdder()
      }

      context("max value is 20") {
        beforeEach {
          adder.maxValue = 20
        }

        context("add 10") {
          beforeEach {
            adder.add(10)
          }

          context("add 6") {
            beforeEach {
              adder.add(6)
            }

            context("add 2") {
              beforeEach {
                adder.add(2)
              }

              context("add 1") {
                beforeEach {
                  adder.add(2)
                }
                
                context("add 3") {
                  beforeEach {
                    adder.add(3)
                  }
                  
                  it("result is 20") {
                    expect(adder.result).to(equal(20))
                  }
                }
              }
            }
          }
        }
      }
    }
  }
} // so many }}}}}}} 

配合Gherkin

class AdderSpec: GherkinSpec {
  override func spec() {
    Feature("add") {
      var adder: Adder!
      Background {
          adder = Adder()
      }

      Scenario("add over max value") {
        Given("max value is 20") {
          adder.maxValue = 20
        }
        
        When("add 10") {
          adder.add(10)
        }
        
        When("add 6") {
          adder.add(6)
        }
        
        When("add 2") {
          adder.add(2)
        }
        
        When("add 1") {
          adder.add(1)
        }
        
        When("add 3") {
          adder.add(3)
        }

        Then("result is 20") {
            expect(adder.result).to(equal(20))
        }
      }
    }
  }
}

优点

  1. 少用'}'。
  2. 使用更具体的上下文关键词(Given,When,Then)。
  3. 无需使用beforeEach

关键词来自Cucumber(https://cucumber.fullstack.org.cn/docs/gherkin/)。

安装

Cocoapods

pod 'Gherkin'

请给我们反馈,以改进iOS-Gherkin。谢谢!