Saltar al contenido

directorio temporal de prueba de golang

Solución:

Puede usar ioutil.TempDir o TempFile del mismo paquete.

Solo para comparar versus lo que tienes ioutil.TempDir, así es como se ven las cosas con io.Reader:

// Load main.conf from the specified file path
func LoadMainSettings(src io.Reader) (*MainSettings, error) {
    b, err := ioutil.ReadAll(src)
    if err != nil { return nil, err }

    r := &MainSettings{}
    err = json.Unmarshal(b, r)
    if err != nil { return nil, err }

    return r, nil
}

Específicamente, cambiamos el argumento de un path cadena a un src io.Reader instancia, y reemplazamos el ioutil.ReadFile con un ioutil.ReadAll.

El caso de prueba que ha escrito termina siendo un poco más corto precisamente porque podemos prescindir de las operaciones de archivo:

s, err := LoadMainSettings(strings.NewReader("{...sample config data...}"))

Desde la versión 1.15 de Go, ahora hay T.TempDir() en el estándar testing paquete. Los documentos lo explican de la siguiente manera:

TempDir devuelve un directorio temporal para que lo use la prueba. Cleanup elimina automáticamente el directorio cuando se completa la prueba y todas sus subpruebas. Cada llamada posterior a t.TempDir devuelve un directorio único; si la creación del directorio falla, TempDir termina la prueba llamando a Fatal.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *