我正在尝试为SwiftUI视图编写单元测试,但是在Web上找到零资源来解决这个问题。
我有如下观点
struct Page: View {
@EnvironmentObject var service: Service
var body: some View {
NavigationView {
ScrollView(.vertical) {
VStack {
Text("Some text"))
.font(.body)
.navigationBarTitle(Text("Title")))
Spacer(minLength: 100)
}
}
}
}
}
我开始写这样的测试
func testPage() {
let page = Page().environmentObject(Service())
let body = page.body
XCTAssertNotNil(body, "Did not find body")
}
但是那我如何获得体内的意见呢?如何测试它们的属性?任何帮助表示赞赏。
更新:事实上,这甚至行不通。我收到以下运行时异常
Thread 1: Fatal error: body() should not be called on ModifiedContent<Page,_EnvironmentKeyWritingModifier<Optional<Service>>>.
直到苹果
a)将可测试性设计为SwiftUI,并且
b)向我们展示了这种可测试性,
我们被搞砸了,将不得不使用UI测试来代替单元测试。