一个 Swift 客户端库,用于 Mountebank - 开源工具,提供基于网络的测试替身。它提供了所有的 API 功能,用于与运行中的 Mountebank 实例交互。
一旦 安装 完成,您需要使用 mb start
启动 Mountebank 服务器。您可以导入 MountebankSwift
模块并在您的测试中设置 MountebankSwift
。
import XCTest
import MountebankSwift
final class ExampleUITests: XCTestCase {
private var mountebank = Mountebank(host: .localhost)
override func setUp() async throws {
// Test if Mountebank is running if it failing please start Mountebank with `mb start`.
try await mountebank.testConnection()
}
override func tearDown() async throws {
// Remove all imposters to have a clean Mountebank instance for the next tests.
try await mountebank.deleteAllImposters()
}
func testExample() throws {
let stub = Stub(
response: Is(statusCode: 201, body: .text("text")),
predicate: .equals(Request(path: "/test"))
)
let imposter = Imposter(networkProtocol: .http, stubs: [stub])
// Post the imposters to start testing against.
try await mountebank.postImposter(imposter: imposter)
let app = XCUIApplication()
app.launch()
}
}
更多示例,请参见演示应用程序 https://github.com/MountebankSwift/MountebankExampleApp/
文档可在 Swift Package Index 网站上找到。
警告
默认情况下,Xcode 将尝试将 MountebankSwift 包添加到您项目的主要应用程序/框架目标。请确保将 MountebankSwift 添加到测试目标,如下面最后一步所述。
https://github.com/MountebankSwift/MountebankSwift
。要将 MountebankSwift 添加到使用 SwiftPM 的项目中,您可以将其作为依赖项添加到 Package.swift
中
dependencies: [
.package(
url: "https://github.com/MountebankSwift/MountebankSwift",
from: "0.0.0"
),
]
接下来,将 MountebankSwift
添加为您的测试目标的依赖项
targets: [
.target(name: "MyExampleApp"),
.testTarget(
name: "MyExampleAppTests",
dependencies: [
"MyExampleApp",
.product(name: "MountebankSwift", package: "MountebankSwift"),
]
)
]
MIT 许可证 (MIT)。更多信息请参见 许可证文件。