---
name: test_fixture_load
kind: function
lang: go
domain: core
version: "1.0.0"
purity: impure
signature: "func TestFixtureLoad(t *testing.T, path string, dst any) error"
description: "Carga un archivo de fixture desde disco y lo deserializa en dst. Soporta JSON (stdlib). YAML es stub — retorna error informativo. Retorna error si el archivo no existe o el parsing falla."
tags: [testing, fixtures, json, yaml, test_helper, io]
uses_functions: []
uses_types: []
returns: []
returns_optional: true
error_type: "error_go_core"
imports: ["encoding/json", "fmt", "os", "path/filepath", "strings", "testing"]
params:
  - name: t
    desc: "testing.T del test actual; usado para t.Helper()"
  - name: path
    desc: "ruta al archivo de fixture (.json, .yaml o .yml); puede ser relativa al directorio del test"
  - name: dst
    desc: "puntero a la estructura destino donde deserializar; debe ser compatible con el formato del archivo"
output: "nil si el fixture se cargo y deserializo correctamente; error con contexto si el archivo no existe, el formato no es soportado o el parsing falla"
tested: true
tests:
  - "carga fixture JSON correctamente"
  - "archivo inexistente retorna error"
  - "extension no soportada retorna error"
  - "JSON invalido retorna error de parsing"
test_file_path: "functions/core/test_fixture_load_test.go"
file_path: "functions/core/test_fixture_load.go"
---

## Ejemplo

```go
var config struct {
    Host string `json:"host"`
    Port int    `json:"port"`
}
err := TestFixtureLoad(t, "testdata/config.json", &config)
// config.Host y config.Port populados desde el archivo
```

## Notas

Funcion impura — hace I/O de disco.
YAML es stub: retorna error informativo para implementar cuando se agregue gopkg.in/yaml.v3.
El path puede ser relativo — Go tests se ejecutan con cwd en el directorio del paquete.
