You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在XCUITest中为DocumentGroup场景Mock测试文件

场景

我有一个基于SwiftUI的文档类应用,使用了带有自定义FileDocument的DocumentGroup场景。

struct ChessRoomApp: App {
    var body: some Scene {
        DocumentGroup(newDocument: SomeDocument()) { file in
            ContentView(document: file.$document)
        }
    }
}
问题

在我的XCUITests中,我希望为每个测试生成一个文档,并在测试完成后清理它。目前我依赖存储在iCloud中的测试文件目录,想要摆脱这种方式。

当前进展

我参考苹果开发者文档的示例代码,已实现(至少我认为已实现)在应用的文档目录中创建和清理文件。这段代码能为我提供临时fileURL,具体如下:

func temporaryFileURL() -> URL {
    let fileManager = FileManager.default
    let directory = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0]
    let filename = UUID().uuidString
    let fileURL = URL(fileURLWithPath: directory.absoluteString).appendingPathComponent(filename, conformingTo: .pgn)
        
    addTeardownBlock {
        do {
            if fileManager.fileExists(atPath: fileURL.path) {
                try fileManager.removeItem(at: fileURL)
                XCTAssertFalse(fileManager.fileExists(atPath: fileURL.path))
            }
        } catch {
            XCTFail("Error while deleting temporary file: \(error)")
        }
    }
        
    return fileURL
}
我的疑问

如何将fileURL对应的文件加载到我的DocumentGroup场景中,以开展测试?


内容的提问来源于stack exchange,提问作者Luïs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:13:22