Ploughman 0.2.0

Ploughman 0.2.0

测试测试
语言语言 SwiftSwift
许可证 BSD
发布最后发布2015年12月
SPM支持 SPM

Kyle Fuller 维护。



 
依赖
PathKit~> 0.5.0
Commander~> 0.2.2
 

Ploughman 0.2.0

Ploughman 是 Cucumber 的 Swift 实现,Gherkin 语言的一个测试运行器。

Cucumber 是一个用于运行以普通语言编写的自动化测试的工具。因为它们是用普通语言编写的,所以可以被您的团队合作中的任何人阅读。因为任何人都可以阅读它们,所以您可以使用它们来帮助改善团队中的沟通、协作和信任。

示例

您可以在 Gherkin 中编写测试,以下是一个示例

Feature: An array

    Scenario: Appending to an array
        Given I have an empty array
         When I add 1 to the array
         Then I should have 1 item in the array

    Scenario: Filtering an array
        Given I have an array with the numbers 1 through 5
         When I filter the array for even numbers
         Then I should have 2 items in the array

然后您可以在 Swift 中编写这些规则的实现

var array: [Int] = []

given("^I have an empty array$") { match in
  array = []
}

given("^I have an array with the numbers (\\d) through (\\d)$") { match in
  let start = match.groups[1]
  let end = match.groups[2]

  array = Array(Int(start)! ..< Int(end)!)
}

when("^I add (\\d) to the array$") { match in
  let number = Int(match.groups[1])!
  array.append(number)
}

when("^I filter the array for even numbers$") { match in
  array = array.filter { $0 % 2 == 0 }
}

then("^I should have (\\d) items? in the array$") { match in
  let count = Int(match.groups[1])!
  try expect(array.count) == count
}

然后您可以按照以下方式运行您的规则以对功能文件进行测试

Screenshot of running Ploughman

自己运行示例

要自己运行示例,您首先需要 Conche 下载依赖项。

$ conche test
$ ./example.swift example.feature
-> An array
  -> Appending to an array
    -> Filtering an array

2 scenarios passed, 0 scenarios failed.

用法

要使用 Ploughman,您需要构建一个命令行工具,该工具添加实现所需的规则,然后调用 ploughman.run() 以启动运行器。

您需要将 Ploughman 依赖项提供给您的命令行工具。

import Ploughman

var array: [Int] = []

given("^I have an empty array$") { match in
  array = []
}

when("^I add (\\d) to the array$") { match in
  let number = Int(match.groups[1])!
  array.append(number)
}

then("^I should have (\\d) items? in the array$") { match in
  let count = Int(match.groups[1])!
  if array.count != count {
    throw /* some error indicating the failure */
  }
}

ploughman.run()

在任何步骤中,您都可以引发错误以指示失败。