// // TestFixture.swift // suixinkanTests // // Created by Codex on 2026/6/22. // import Foundation @testable import suixinkan /// 测试 Fixture 读取工具,用于复用旧工程迁移过来的 JSON 响应。 enum TestFixture { /// 读取指定名称的 JSON fixture。 static func data(named name: String, filePath: String = #filePath) throws -> Data { let url = URL(fileURLWithPath: filePath) .deletingLastPathComponent() .appendingPathComponent("Fixtures") .appendingPathComponent("\(name).json") return try Data(contentsOf: url) } /// 读取并解包后端统一 Envelope。 static func payload(_ type: T.Type, named name: String) throws -> T { let envelope = try JSONDecoder().decode(APIEnvelope.self, from: data(named: name)) guard let payload = envelope.data else { throw FixtureError.emptyPayload } return payload } } /// 测试 Fixture 错误实体。 enum FixtureError: Error { case emptyPayload }