我正在为我们的一个应用程序开发小部件扩展。一切都很顺利,我可以添加和显示小部件,我还对我们的视图模型等进行了单元测试。接下来我正在尝试对小部件 UI 进行快照测试并使用 Quick and Nimble 框架。我阅读了一些关于如何为 SwiftUI 执行此操作的文章,目前我正在按照建议进行操作。
func testExample() throws {
let contentView = ContentView() // conteView is containing some text + images.
let view = contentView(width: 155, height: 155, alignment: .center)
let controller = UIHostingController(rootView: view)
controller.view.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
expect(controller.view) == recordSnapshot()
}
结果是我得到了空白视图的快照。因此,我将断点放置在调试
let contentView = ContentView() // conteView is containing some text + images.
事实证明,它并没有在 ui 布局中单步执行ContentView()
我注意到我们能够为 SwiftUI 进行快照测试。但是,我不确定我们是否能够为也使用 SwiftUI 的小部件扩展这样做。
对此的任何想法和所有答案都将不胜感激。
谢谢