如何在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
相关产品推荐
相关产品推荐

