如何在 Swift 测试中检查 ToolbarItems

问题描述 投票:0回答:1

我正在尝试测试我的视图并检查 UI 内的特定视图。我找到了一些用于体内视图的内容,但没有找到用于工具栏的内容。请参阅以下示例:

import Foundation
import Quick
import Nimble
import ViewInspector

struct MyView: View {
    var body: some View {
        NavigationStack {
            VStack {
                Image(systemName: "gearshape")
                    .identifier("image")
            }
            .toolbar {
                ToolbarItem(placement: .bottomBar) {
                    Button("Press me")
                        .identifier("button")
                }
            }
        }
    }
}

class MyViewSpec: QuickSpec {
    override static func spec() {
        describe("A View") {
            var view: InspectableView<ViewType.ClassifiedView>!
            
            beforeEach {
                view = try! MyView().inspect()
            }
            it("Has a Image") {
                expect(try view.find(viewWithId: "image")).notTo(throwError())
            }
            it ("Has an item in the toolbar") {
                expect(try view.find(viewWithId: "button")).notTo(throwError()) // DOES NOT WORK
//                expect(try view.toolbar()) // CANT PASS AN ID
            }
        }
    }
}

我只想检查ID为“button”的Button是否存在,但找不到视图。 我尝试通过 Google 寻找解决方案,但不幸的是我没有找到解决此问题的任何方法。也许有人已经遇到过这个问题并且知道如何解决这个问题?预先感谢:-)

swift testing quick-nimble
1个回答
0
投票

查看库的测试,有一个可能是预期方法的示例:

.toolbar(id: "abc") { ToolbarItem(id: "") { Text("") } }

随后:

XCTAssertEqual(try sut.inspect().toolbar(1).identifier(), "abc")
© www.soinside.com 2019 - 2024. All rights reserved.