BarricadeKit 2.0.4

BarricadeKit 2.0.4

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布最后发布2022年2月
SPM支持 SPM

John McIntosh 维护。



  • 作者:
  • John T McIntosh

CocoaPods compatible Build Status CodeCov Swift 5.0 License

BarricadeKit

BarricadeKit 是对 MMBarricade 的 Swift 重写。功能集和 API 现在相似,但未来的更新将针对 BarricadeKit 而不是 MMBarricade。

为什么选择 Barricade?

BarricadeKit 是一个框架,用于为 iOS 应用设置运行时可配置的本地服务器。这是通过创建一个 NSURLProtocol "barricade" 来实现的,该协议拦截出站网络流量并将其重定向到自定义本地响应,而无需更改现有网络代码。

大多数其他本地服务器实现只支持每个请求一个响应,但 Barricade 支持每个请求多个响应。这允许在运行时展示界面以选择将返回哪个响应。能够在无需重新构建应用的情况下测试多个网络路径,可以节省大量的时间。

Example App

何时使用

开发 过程中,barricade 在构建过程中,无需频繁调整实时服务器状态的情况下,可以轻松地测试所有功能边缘情况。

对于 单元测试和集成测试,Barricade 允许你轻松地切换每个预定义的响应,以便测试可以充分覆盖边界情况。

同样地,对于类似的 UI测试,例如 KIF,也可以程序化地更新选定的响应,这允许你的测试套件覆盖故障场景以及“幸福路径”。

安装 BarricadeKit

CocoaPods compatible

安装 BarricadeKit 最简单的方法是通过 CocoaPods

pod 'BarricadeKit', '~> 2.0.0'

选择接口

BarricadeKit 配置了一个可以显示的界面,以便在运行时选择网络响应。

Example App

你可以采用以下两种方法之一来显示选择UI

  • 当设备摇晃时自动显示界面。为此,只需将你的 UIWindow 替换为 BarricadeShakeWindow 的实例。如果你在使用 storyboards,请覆盖应用程序委托中的 - window
    lazy var window: UIWindow? = {
        return BarricadeShakeWindow(frame: UIScreen.main.bounds)
    }()

注意:默认情况下,摇晃窗口仅用于调试构建。你可以手动设置 BarricadeShakeWindow.isEnabled 来调整此行为。

  • 你可以在应用程序中的任何时间手动显示 BarricadeViewController,只需确保将其限制在调试构建中,除非你想将其发送到 App Store。

App Store 上传

BarricadeKit 可以安全地包含在 App Store 构建(并且可以用于支持像您的应用程序的演示模式这样的功能),但大多数时候你可能希望确保在 App Store 构建中禁用 barricade。以下是一些方法:

按条件启用

在你的应用程序中,你可以使用宏将 barricade 的创建包装起来,以将代码执行限制在特定的构建配置上。例如

#if DEBUG
Barricade.enableForDefaultSession()
#endif

通过 CocoaPods 禁用

通过 CocoaPods 安装时,你可以指定特定的构建配置来限制库的安装。例如

pod 'BarricadeKit', '~> 2.0.0', :configurations => ['Debug']

或者,如果你只是利用库进行单元测试,你可能只想将库与你的测试目标链接

target 'Tests', :exclusive => true do
  pod 'BarricadeKit', '~> 2.0.0'
end

许可证

BarricadeKit 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。