我正在关注这个页面来创建一个包装的 HStack。然而,HStack 异步计算它的高度,这意味着我的快照测试变得非常时髦。我在异步快照测试中查看了这一集,但它不是太清晰/有帮助。
有人可以帮助阐明如何使用 SwiftUI 快照测试库(https://github.com/pointfreeco/swift-snapshot-testing)来测试我的新(有点异步)包装的 HStack?
我遵循了这个 Gist并使用这个代码来创建快照测试:
func test_wrappingHStack() {
let view = ScrollView {
VStack {
Text("Title").font(.headline)
WrappingHStack(models: ["Ninetendo", "XBox", "PlayStation", "PlayStation 2", "PlayStation 3", "PlayStation 4", "Apple", "Google", "Amazon", "Microsoft", "Oracle", "Facebook"]) { str in
Text(str)
}
Button("Click me") {}
}
}
assertSnapshot(matching: view.toViewController(), as: .image, record: true)
}
extension SwiftUI.View {
func toViewController() -> UIViewController {
let viewController = UIHostingController(rootView: self)
viewController.view.frame = UIScreen.main.bounds
return viewController
}
}