FTTestingKit logo

FTTestingKit

Cocoapods Cocoapods platforms Cocoapods

一套用于简化创建模拟数据、随机值和异步代码测试的辅助工具集。

安装

使用 Swift 包管理器时,将此行添加到您的依赖项中,或使用 Xcode 11 或更高版本进行安装

.package(url: "https://github.com/futuredapp/FTTestingKit.git", from: "0.5.0")

使用 CocoaPods 时,将以下行添加到您的 Podfile

pod 'FTTestingKit', '~> 0.5'

使用 PromiseKit 时,您可以使用 FTTestingKitPromiseKit 目标来测试 promises,或者将 subspec 添加到您的 Podfile

pod 'FTTestingKit', '~> 0.5', subspecs: ['PromiseKit']

特性

该库的主要特性包括生成模拟数据、随机值、数组和异步测试。

模拟数据 (Mockups)

为了简单重复执行,该库在 Int 类型上提供了一个类似 Ruby 的扩展。 这在测量测试中很有用。

10.times {
    doSomething()
}
10.times(doSomething)

此扩展也可以创建数组

10.times {
    Int.random()
}
10.times(String.random)

该框架扩展了一些基本类型 (Date, String),使其拥有类似于 Int 的随机生成功能。 所有这些类型都符合 Mockup 协议,该协议正式描述了此功能。

Date.random()
String.random()
Int.random(count: 10)

期望 (Expectations)

该框架扩展了 XCTestCase,提供了一些简单的方法来调用事务性异步测试,如下所示

expect(within: 0.5) { reply in
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) {
        reply(.success)
    }
}

PromiseKit 的扩展在此基础上构建,并提供使用所谓的 "belief in promise" 方法测试 promises 的功能

believe(for: 0.5, in: someFunctionReturningPromise())

作者

Matěj Kašpar Jirásek, matej.jirasek@futured.app

许可协议

FTTestingKit 使用 MIT 许可协议。 有关更多信息,请参阅 LICENSE 文件