XCFit项目详情
XCFit持续集成状态
作者信息
XCFit : Xcode中的全栈iOS BDD
XCFit提供基于协议的BDD(行为驱动开发)模板,使用"协议BDD Bundle"以及页面对象模式,并针对Apple的XCUI Test使用“XCUI POM Test Bundle”模板。我们可以通过使用XCFit Swift框架,从CocoaPods、Carthage和Swift软件包管理器获取预定义的BDD步骤。
- Cucumberish BDD框架和Cucumber风格Xcode模板(可选Objective-C)
XCFit通过“Cucumberish UI Test Bundle”模板设置Cucumber风格的BDD框架。
- 使用OCSlim项目(可选Objective-C)执行iOS的Fitnesse验收测试
XCFit允许我们使用“验收测试Bundle”模板设置Fitnesse风格的决策表测试框架,配合OCSlimProject。
获取XCFit Swift框架和XCFit Xcode模板的位置
XCFit Swift框架
- CocoaPods -- XCFit-CocoaPods : 提供XCFit Swift框架和iOS应用程序支持的基于协议的BDD预定义步骤。
- Carthage -- 你也可以通过Carthage安装XCFit Swift Framework到iOS项目中
- Swift Package Manager -- 尚不支持iOS项目的Swift包管理器,但XCFit与Swift包管理器也是兼容的。
XCFit模板
-
Homebrew - 我们可以通过访问'shashikant86/homebrew-taps'来安装XCFit以下载Xcode模板
-
RubyGems -- xcfit-RubyGem来获取自动化的Xcode模板
推荐使用Rubygem方法。
技术及软件需求
XCFit是纯Swift编写,但如Fitnesse和Cucumberish等库需要一些额外的软件。
硬件
您必须有OSX/MacOS Sierra或更高版本的Mac操作系统。
软件
- Xcode 9
- XCFit 4仅支持Xcode 8.3及更高版本,然而XCFit 3可以与Xcode 8.2一起使用。
- Swift 4
- XCFit当前支持Swift 3.0和Swift 3.1。
- Ruby
- 需要Ruby来设置XCFit模板,无论是使用Homebrew还是Rubygem。使用RVM进行GEM管理。理想情况下Ruby > 2.X。可以使用sudo使用系统Ruby。
- Mac上的Curl
- 可能已经预装,但值得再次确认。
- Homebrew(可选)
- Fitnesse(可选):如果您想使用Fitnesse,可能需要安装iOS-Sim和Java。
安装
XCFit安装分为两个步骤。
- 安装Xcode模板
这将安装支持iOS应用程序中BDD的Xcode模板带骨架代码。这些模板是XCUI基于协议的BDD模板、页面对象模板、Cucumberish BDD模板和OCSlim Fitnesse模板(可选)。可以使用xcfit-RubyGem或Homebrew安装这些模板。您只需选择一种安装方式。Rubygem方法更受欢迎。
- 安装框架
XCFit Swift Framework提供了预定义的BDD Style步骤及其XCUITest,以支持协议导向的BDD和以页面对象模式编写测试。可以使用Cucumberish和OCSlim等辅助框架来编写BDD步骤。XCFit Swift Framework可在XCFit-CocoaPods、Carthage和Swift Package manager上找到。Cucumberish和OCSlimProject在Cocoapods上提供。
模板安装
可以使用Rubygem安装XCFit模板。
XCFit RubyGems安装
如果您无法使用HomeBrew,则可以使用RubyGems安装XCFit。这将为我们设置Xcode中的BDD模板以及Cucumberish。
$ gem install xcfit
如果您使用的是系统(预装)Ruby(2.0),则需要使用'sudo'。XCFit gem将用于为Xcode设置所有Xcode模板。
您可以选择上述任何一种方法。Rubygems方法更受欢迎。
设置 Xcode 模板
在现有应用程序或全新应用程序中,我们必须为目标启用 Xcode 模板以加快
Xcode 模板 for XCFit
为 Xcode 8 设置模板以满足 XCUI 协议驱动的 BDD(行为驱动开发)、类似于 Cucumber 的目标以及 Gherkin 文件类型。
$ xcfit setup_xcode_templates
- 这将向您的 Xcode iOS 应用程序添加几个模板。在您的应用程序中,如果您转到 '文件--->新建--->目标'
您将看到新的 iOS 选项,即 'XCFit'。一旦点击它,您将看到协议 BDD、类似于 Cucumber 的 UI 和 Fitnesse 接受测试。XCUI POM、Fitnesse 接受单元测试束。
注意:随着 Xcode 10 新的构建系统,此目标生成了重复的构建阶段,如编译源代码、链接二进制与库、耦合资源等,这阻碍了构建。解决方法很简单,请访问“目标”-----“构建阶段”,并删除重复的构建阶段。
框架安装
可以使用 Cocoapods 安装 XCFit、类似于 Cucumber 的框架或 OCSlimProject 框架。XCFit 和类似于 Cucumber 的框架也可以使用 Carthage 来安装。
Cocoapods
使用 XCFit 模板 Podfile
Cocoapods 比 Carthage 更快、更自动。我们可以创建用于目标的 Podfile
并添加特定的依赖,或者我们可以使用命令使用 XCFit 模板 Podfile
。
$ xcfit setup_xcfit_podfile
这将会创建一个 Podfile,您需要根据需要替换您的 XCFIT、CUCUMBERISH 或 FITNESSE 目标名字。
手动 Cocoapods 安装
我们可以根据使用的 Swift 版本安装 XCFit Cocoapods。
最新版本应该支持
target '$_YOUR__TARGET' do
pod 'XCFit'
end
您可以使用上述任何一种方法来设置 Podfile
。
现在,我们已经设置好 Podfile
,我们可以使用命令安装依赖项。
$ pod install
下次您需要关闭现有的 Xcode 会话和 .xcworkspace Xcode 工作区。
Carthage
XCFit 和 Cucumberish 可以作为 Cartahge 安装。我们需要在项目根目录中创建 Cartfile
。根据您使用的 Swift 版本,我们可以使用不同的标记。您可以使用最新的标记与 Swift 3.1 一起使用,那么 Cartfile
可以如下所示:
github "Shashikant86/XCFit"
现在,我们可以使用以下命令检索和构建 Carthage 依赖项。
$ carthage update --platform iOS
这将检出并构建 XCFit 框架,然后我们可以手动将这些框架拖动到测试目标的 构建阶段
中。这将在构建框架时创建 'Carthage' 目录,我们需要手动拖放到我们 'XCUIPoMTest' 目标构建设置中。在您的应用目标的 “General” 选项卡中,在 “Linked Frameworks and Libraries” 部分中,从磁盘上的 Carthage/Build 文件夹中拖放您想使用的每个框架。在您的应用目标的 “Build Phases” 设置选项卡中,点击 “+” 图标并选择 “New Run Script Phase”。创建一个 Run Script,在其中指定您的 shell(例如:bin/sh),将以下内容添加到脚本区域下的 shell 下:
/usr/local/bin/carthage copy-frameworks
并在 “输入文件” 下添加您想使用的框架路径,例如:
$(SRCROOT)/Carthage/Build/iOS/XCFit.framework
您可以选择上述任何一种方法,但 Cocoapods 更简单,更少需要手动操作。
Swift包管理器
请注意,Swift包管理器目前不支持iOS=====
XCFit可以使用Swift包管理器进行安装,但由于Swift包管理器并未官方支持iOS,所以我们只能将XCFit用于独立库。我们需要创建包含以下内容的Package.swift
文件。
import PackageDescription
let package = Package(
name: "XCFit",
dependencies: [
.Package(url: "https://github.com/Shashikant86/XCFit.git", majorVersion: 4.0.0),
]
)
现在我们可以使用以下命令来获取XCFit:
$ swift package fetch
我们可以使用Swift包管理器可用的命令来构建和测试包。
XCFit Swift框架: 基于协议的BDD
基于协议的BDD(推荐)
您可以在我的博客上阅读关于基于协议的BDD的逐步教程在这里
XCFit模板支持基于协议的BDD。Swift是一种基于协议的语言,我们不希望错过协议、扩展和枚举的优点。要设置模板,您可以在我的博客上阅读关于基于协议的BDD的逐步教程这里
-
从Xcode创建一个新的应用(或使用现有的应用),然后选择“文件”--->“新建”--->“目标”。
-
现在选择iOS应用中的“XCFit”,然后点击“基于协议的BDD工具包”。
-
一旦点击,Xcode将创建一个带有正确结构的Xcode组和高需要文件的UI测试目标。然后您可以在磁盘上手动创建物理目录,或者根据您的需要进行更改文件夹/组结构。
-
您可能想要删除由Apple标准模板自动生成的UI测试。
-
要运行这些示例XCUI测试,您不需要进行任何设置。只需按CMD+U即可!
注意:在 Xcode 10 新建系统中,此目标生成了诸如编译源代码、链接库与资源等重复的构建阶段,这会阻塞构建工作。解决办法很简单,访问目标----> 构建阶段,删除重复的构建阶段。
Protocol Oriented BDD 模板中有什么?
- Feature.swift
这是您的功能,其中包含所有可写为验收测试的要求。
- FeatureSteps.swift
这是对 Feature 的扩展,您需要在该文件中实现 Given When Then 格式的步骤定义。
- FeatureElements.swift
该功能的全部 XCUIElements。
- YOUR_TARGET_Test.swift
这是一个测试,您可以从扩展中调用 Given When Then。您可以导入 XCFit
框架,并扩展这个类的 'XCFit',同时确认 'Feature' 协议。
- UITestBase.swift 这是所有测试的基础类。一旦导入 XCFit,我们就可以使用 XCFit 扩展此类以获取预定义的步骤。
获取 XCFit 框架以预定义 BDD 风格的步骤
您可以通过上述方法轻松获取 XCFit 框架。如果您选择使用 Cocoapods,则创建 Podfile
并添加特定依赖项。Cocoapods 比 Carthage 更自动化。我们可以创建 Podfile
并为目标添加特定依赖项,或者使用命令使用 XCFit 模板 Podfile
。
$ xcfit setup_xcfit_podfile
这将创建一个 Podfile,您需要根据需要替换目标名称,然后按照上述说明操作。
导入 XCFit & 使用预定义步骤
我们可以通过导入XCFit
并扩展测试类以使用XCFit
来使用一些预定义的XCFit步骤。这里有大量预定义的BDD步骤可用,请在此处查看:这里。您可以在合理的地方使用预定义步骤,但编写自己的步骤也很简单。
在面向协议的BDD模式中使用步骤
您只需在UITestBase
类中导入XCFit
并扩展到XCFit即可。您还可以使用FeatureSteps.swift
实现或覆盖一些步骤。您可以在我的博客上找到有关协议导向BDD的逐步教程:这里
实际演示:观看YouTube视频
我强烈建议使用面向协议的BDD方法,并且您可以忽略以下提到的模式
页面对象模式
XCFit模板提供了一种使用非常流行的页面对象模式,该模式与Apple的Xcode UI测试框架兼容。您可以安装模板并直接使用代码,除非您想要使用预定义的BDD风格测试,否则不需要使用框架。
设置“页面对象测试包”靶标
-
在Xcode中,创建一个新的应用(或使用现有应用),选择文件--->新 ---->靶标。
-
现在选择‘XCFit’用于iOS应用,并点击“页面对象测试包”。
-
一旦点击目标示例 "XCUI POM 测试包",Xcode 将创建带有适当结构的 Xcode 组和所需文件的 UI 测试目标。然后您可以在磁盘上创建物理目录或根据您的需求更改文件夹/组结构。
-
您可能想要删除由Apple标准模板自动生成的UI测试。
-
要运行这些示例XCUI测试,您不需要进行任何设置。只需按CMD+U即可!
XCUI POM 模板中有什么?
- YOUR_APP_TARGETPageObjectTests.swift
此文件位于目标的基本位置。它与 Apple 的 XCUI 测试在首次生成的文件完全相同。您可以用它来录制测试或如果不需要则简单地删除它。
- 屏幕
这是我们可以在其中抽象应用程序每个屏幕逻辑的组。示例文件有 'HomeScreen.swift' 和 'BaseScreen.swift'。这假设您应用程序由多个屏幕组成。您可以编写扩展 BaseScreen 的单独屏幕类。与屏幕相关的所有功能都可以包含在这个类中。
- 测试
此组包含我们应用程序的所有测试。当前示例模板有两个测试 'HomeScreenTest.swift' 和 'ProtocolOrientedTest.swift'。这个例子展示了如何以面向对象和面向协议的方式实现 XCUI 测试。
- TestBase
Testbase 是可以抽象所有设置、降级和公用逻辑的基本类的组。每个屏幕都以此类为基础。您可以根据需要添加更多内容,例如固定装置、启动参数等。
在页面对象模式中使用步骤
您可以在测试类中简单地导入 XCFit
并将它扩展到 XCFit。
您将获得访问许多预定义的 BDD 风格的可读步骤。除非您希望使用这些步骤,否则不是必须使用。
不喜欢预定义的步骤,您可以在稍后的部分轻松地覆盖这些步骤。
为 XCFit 设置 Fastlane
Fastlane 是一款用于 iOS Continuous Delivery 的非常棒的工具,它自动化了大多数 iOS 开发任务。我们可以使用它来运行使用 XCFit 编写的测试。我们可以使用 XCFit 命令设置示例 Fastfile
。
$ xcfit setup_xcfit_fastfile
这将创建带有所有所需通道的模板 Fastfile。您可以根据需要替换 YOUR_SCHEME、WORKSPACE 等变量。然后我们可以运行
$ fastlane xcfit
这将使用 Fastlane 运行我们所有的测试,这将有助于将其与任何 CI 服务器集成。
Xcode 中设置 Cucumberish BDD 场景
设置 'iOS UI Cucumberish 测试捆绑包' 目标
-
在Xcode中,创建一个新的应用(或使用现有应用),选择文件--->新 ---->靶标。
-
接下来,为 iOS 应用选择 'XCFit' 并点击 'Cucumberish UI 测试捆绑包'
-
点击目标,例如 'Cucumberish UI 测试捆绑包' 后,Xcode 将创建包含所有专用文件(包括为 Cucumberish UI 测试创建的桥接头)的 UI 测试目标。它将创建具有屏幕、步骤定义和 Cucumberish 初始化器 swift 文件的页面对象模式。
让我们看看 Cucumberish 模板中有哪些内容。
Cucumberish 模板中有什么?
- YOUR_CUCUMBERISH_TARGET.swift
此文件是目标的基础。此文件启动 Cucumberish 项目。我们需要在此文件中注册所有步骤定义。
- 屏幕
这是我们可以抽象应用程序中每个屏幕逻辑的组。例如文件有 'HomeScreen.swift'。
- 步骤定义
这个组包含所有与屏幕相关的步骤定义。例如文件 'HomeScreenSteps.swift'。一旦实现,我们需要在上述初始化器文件中注册它。
- 公共的
这个组包含像扩展和公共步骤这样的公共代码。"CommonStepDefinitions.swift" 示例文件中有一些步骤可以用在功能文件中。
- 支持文件
这个组包含所有用于使 Cucumberish 与 Swift 一起工作的 Objective-C 头文件和桥接头。
Cucumberish 模板中没有哪些内容?
- 功能目录
模板中没有 'Features' 目录,因为它需要在磁盘上有一个目录,并作为 '文件夹引用' 而不是组添加到 Xcode 中。
-
创建一个名为 "Feature" 的目录
-
现在,通过 File->New->Gherkin 在 'Features' 目录中添加一个示例 Gherkin 功能文件,或者只需使用您喜欢的文本编辑器(例如 demo.feature)添加它
Feature: Demo App Feature
Scenario: Demo Scenario
Given the app is running
-
现在将 'Features' 目录拖放到 Xcode Cucumberish 目标中
-
仅选择 '创建文件夹引用' 选项。** 不要选择 '创建组' 或 '如有需要复制项目**'
现在,我们需要使用 Carthage 或 Cocoapods 获取 cucumberish 框架。
获取 Cucumberish 框架
Cucumberish 是 XCFit 的依赖之一,因此在使用 Cocoapods 时,你会与 XCFit 一起获取 Cucumberish。但是 Carthage 需要进行更多的设置。
将 Cucumberish CocoaPod 导入我们的目标
为了获取 Cucumberish 的源代码内容,我们可以通过以下几种方式之一完成:
- Cocoapods
如果您还没有,请先创建一个 'Podfile'。在 Podfile 中,添加以下 Pod 条目并更新/安装 pod
- Swift 3.1
您可以下载最新版本 4.0.0 以与 Swift 3.1 一起工作
target '$_YOUR__TARGET' do
pod 'XCFit'
end
现在,我们可以安装依赖项了。
$ pod install
现在关闭现有的 Xcode 会话和 Xcode Workspace .xcworkspace
,下次再打开。
我们现在拥有了运行演示 Cucumber 示例测试所需的所有内容。如果您不希望运行单元测试或其他类型的测试,请更新 Scheme。然后按 'CMD+U'。
恭喜!您已经在 Xcode 中运行了第一个 Cucumber BDD Scenario。
如果需要,创建单独的 Scheme
XCFit 将 'Cucumberish' 目标添加到现有的 Scheme 中。您可以移除该目标并运行独立的 Scheme,以保持其与单元测试的独立。确保您使新 Scheme 可用于运行。
使用 Carthage 获取 Cucumberish
一旦您设置了 XCFit Cucumberish 模板,我们需要获取 Cucumberish 框架。为了使用 Carthage 获取 Cucumberish,我们需要创建包含以下内容的 Cartfile
:
- Swift 3.1
您可以通过以下命令获取 Cucumberish
github "Ahmed-Ali/Cucumberish"
现在,使用以下命令安装 Carthage 框架
$ carthage update --platform iOS
这将从 Carthage
目录中检查和构建 XCFit 和 Cucumberish 框架。现在我们需要手动将框架拖到 Cucumberish 目标的 构建阶段
中。
- 从cucumberish目标的构建阶段中选择
链接二进制与库
,并将Cucumberish.framework
从Carthage/Build/iOS
目录拖拽至目标中。 - 添加
新复制文件阶段
,选择目标为'框架',并从Carthage/Build/iOS
目录添加Cucumberish框架。在提示时选择'创建组'和'如有必要则复制'。
一旦完成拖拽,并有了"Features"目录,就可以准备使用'CMD+U'启动BDD风格的测试了。整个Carthage设置看起来是这样的
Cucumberish预定义步骤
有些Cucumberish步骤是预定义的,可以直接使用,无需在步骤定义中实现。您可以在这里查看步骤列表。您已经在'CommonStepDefinitions.swift'文件中有这些步骤。您可以根据项目需求修改步骤,或者添加自己的。如果要覆盖预定义的步骤,可以在下面的部分找到相关信息这里
关于使用预定义BDD风格步骤的建议
XCFit为XCFit Swift框架和Cucumberish框架都提供了预定义步骤。
建议使用自己的步骤,因为预定义步骤可能不符合项目需求。预定义步骤可以为您提供实现步骤的指导,但您可以在适用之处使用预定义步骤以避免重复。
扩展预定义步骤
您可以通过编写Swift扩展并在Cucumberish的'CommonStepDefinitions.swift'文件中更改通用步骤定义,轻松地覆盖预定义的BDD风格步骤。
从XCFit框架扩展BDD步骤
XCFit有一个步骤givenILaunchedApplication()
,如果您对其文辞不满意,可以轻松编写扩展并像这样使用自己的步骤:
extension XCFit {
func givenMyiOSApplicationHasBeenLaunched() {
XCUIApplication().launch()
}
}
现在您可以在Test目标的任何地方使用自己的givenMyiOSApplicationHasBeenLaunched()
步骤。
扩展/修改 Cucumberish BDD 步骤
XFIt 模板为设置 Cucumberish 存储有所有 预定义的 Cucumberish BDD 步骤 的 Swift 代码,在 'CommonStepDefinitions.swift' 文件中。您只需相应地添加自己的步骤或更改现有的步骤。
Fitnesse for iOS:验收/合约测试
如果您想了解 Fitnnese for iOS 的更多信息,请查阅 OCSlim 项目文档 OCSlim。XCFit 作为依赖项采用了该框架,以便实现全栈 BDD,可能无法长期保持这种状态。建议从此处导航至 OCSlim 项目,但这部分将涵盖基本设置。《Fitnesse》是完全集成的独立 wiki 和 BDD 风格验收测试框架。目前我们见过了 Cucumber 和页面对象模式测试框架。我们将在本文件中涵盖基本设置。开始之前,请确保已安装 Fitnesse Xcode 模板
设置‘验收测试’目标模板
-
从Xcode创建一个新的应用(或使用现有的应用),然后选择“文件”--->“新建”--->“目标”。
-
现在选择‘XCFit’iOS 应用,并点击‘iOS 验收测试’
-
点击目标后,例如‘OS 验收测试’,Xcode 将创建用于验收测试所需的所有文件和组的新目标
-
从 Xcode 选择‘验收测试’方案,并按住 CMD+B 尝试构建
-
构建可能会失败,因为我们需要修复一些 Swift3 相关问题,并且我们还需要将 XCFit/OCSlimProject Pod 添加到 podfile。
- 修复 Swift 问题:只需点击‘编辑->转换->转换为当前 Swift 语法’
- 修复 Pod 问题:为验收测试目标添加 'OCSlimProject'
target 'AcceptanceTests' do
pod 'OCSlimProject'
end
$ pod install
现在,您应该能够构建“验收测试”目标。
您还应该注意,项目基础中已创建了名为‘Launch Fitnesse’的脚本。通过在命令行中执行该脚本来启动 Fitness
$ sh Launch Fitnesse
浏览器将弹出一个示例测试。您应该能够执行此测试套件并看到正在进行和通过
如果在此时有任何错误,请确认您已安装 Java 以及 ios-sim node 包。
因此,恭喜您再次执行了从浏览器执行 Fitnesse 测试,该测试正在与您的应用进行通信。
使用 XCTest 设置 Fitnesse 接收目标
您也可以设置 Fitnesse 接收测试,但需要对此目标使用 Cocoapods。
您可以在 Dzone 上找到详细的博客文章。
将接受测试和接受单元测试目标添加到项目中
我们已定义了所有的 FitNesse 目标。只需从模板添加“Acceptance Tests”目标,从捆绑包添加“AcceptanceUnitTests”目标。您需要“FitNesse 套件页面名称”来创建此目标,但现在只需在“OCSlimProjectExamplePage”中填写即可。在构建阶段,将“AcceptanceTests”目标添加为新的目标的“目标依赖项”。这确保了在运行测试之前已构建了最新的代码。
添加 Pod 依赖关系
我们需要在项目根目录创建一个“Podfile”,内容如下。
target 'AcceptanceUnitTests' do
pod 'OCSlimProjectTestBundleSupport'
end
现在,我们可以在此时运行“pod install”并关闭当前的 Xcode 会话,然后打开项目工作区。
构建接受测试目标
在此阶段,我们应该能够构建“Acceptance Tests”目标。如果您使用 Xcode8,可能会看到一些与 Swift3 语法相关的警告。只需单击“编辑 -> 转换 -> 转换为当前 Swift 语法”。
现在应该可以构建一个“Acceptance Tests”目标。一旦构建成功,您应该在项目根目录中看到一个名为“LaunchFitnesse”的脚本被生成。我们可以按照以下方式启动和执行 fitness 测试。
测试接受单元测试目标
现在如果您选择“接受单元目标”并按下CMD+U。
现在我们能看到FitNesse测试正在运行,如上图所示。我们可以将其添加到主方案中,以确保我们在单元测试后运行它,以遵循正确的开发工作流程。我们可以像我们的正常单元测试一样构建和运行它。
与Xcode Server的持续集成
您可以在Dzone上阅读我关于如何设置Xcode Server以支持XCFit包的详细博客Xcode使用Xcode Server的持续集成
XCFit:Swift包管理器
Swift包管理器官方不支持iOS项目(Xcode模板),但我们可以用它来构建包。XCFit将全面支持XCUI测试助手,这样我们就可以无缝使用Apple的XCUI测试框架。在GitHub上有一个示例swift包,用于测试XCFit完整文档和API实现仍在进行中。您可以像这样获取它
import PackageDescription
let package = Package(
name: "XCFit",
dependencies: [
.Package(url: "https://github.com/Shashikant86/XCFit.git", majorVersion: 4.0.0),
]
)
使用示例应用快速演示
您可以克隆现有的仓库,该仓库有一个我们可以在其中运行单元、Fitnesse和Cucumbertish测试作为XCTest的演示应用。
$ git clone https://github.com/Shashikant86/XCFit4Demo
$ cd XCFit4Demo
$ open XCFit4Demo.xcworkspace/
使用Xcode通过“XCFit4Demo”方案运行XCUI和Cucumberish测试,按“cmd + U”。您也可以使用“接受单元测试”目标/方案,按“CMD+U”运行fitnesse测试。您可以使用xcodebuild
或Fastlane Tools对其进行脚本化。
步骤详解视频演示:旧版本
您可以在YouTube上观看逐步的视频演示。点击以下链接
致谢
特殊感谢
- Cucumberish : 为iOS App提供原生 Gherkin 解析器,以在Xcode中使用Given When Then实现BDD。太棒了!
- OCSlimProject : 提供Xcode模板,以使用Fitnesse的决策表实现BDD
作者
Shashikant86,[email protected]
许可证
版权所有 © 2014 Shashikant Jagtap,http://shashikantjagtap.net
在此特此授予任何获得本软件及其相关文档副本(“软件”)的人士在不收取任何费用的情况下使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可及/或销售软件副本的权利,并允许向提供软件的人士使用本软件,但须遵守以下条件
上述版权声明和本许可声明应包含在本软件的任何副本或实质部分中。
本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、适用于特定目的和无侵权的保证。在任何情况下,作者或版权持有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他,因本软件或其使用或其他方式而产生。
贡献
- 将其分叉( https://github.com/Shashikant86/XCFit/fork )
- 创建您的功能分支(
git checkout -b my-new-feature
) - 提交您的更改(
git commit -am 'Add some feature'
) - 将更改推送到分支(
git push origin my-new-feature
) - 创建一个新的Pull Request