es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo refactorizar rust assert_json_snapshot_matches en assert_json_snapshot

Actualicé mi paquete rust insta a la última versión 1.8.0, durante el proceso encontré que assert_json_snapshot_matches ha sido reemplazado con assert_json_snapshot. Intenté ejecutar la prueba simplemente reemplazando el método. Pero no funciona.

let actual = &create_oci_json(&site, "whoami").expect("json should be okay");

assert_json_snapshot_matches!("oci_json", &actual, {
        ".process.user.uid" => 42,
        ".process.user.gid" => 42,
});

Después de cambiar el nombre del método a assert_json_snapshot, arroja este error.

let actual = &create_oci_json(&site, "whoami").expect("json should be okay");
let expect = json!({
        ".process.user.uid" : "42",
        ".process.user.gid" : "42"
});

assert_json_snapshot!(vec![actual, &expect]);

Editado:

Se omitieron errores:
501 │+]
────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Para actualizar las instantáneas, ejecuta ‘cargo insta review’
El hilo ‘container::contained_v2::tests::test_create_oci_json’ entró en pánico en ‘la aserción de instantánea para ‘oci_json’ falló en la línea 413′, /Users/mohamednizar/.cargo/registry/src/github.com-1ecc6299db9ec823/insta-1.8.0/src/runtime.rs:1048:9

Como era nuevo en cargo, olvidé ejecutar ‘cargo insta review’. Después de ejecutar este comando, se resolvió el problema.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La actualización del paquete ‘insta’ causó problemas con las pruebas de instantáneas

    Actualicé mi paquete ‘insta’ a la versión ‘1.8.0’ y descubrí que el método ‘assert_json_snapshot_matches’ había sido reemplazado por ‘assert_json_snapshot’. Intenté ejecutar la prueba simplemente reemplazando el método, pero no funcionó.

    El código original era:

    let actual = &create_oci_json(&site, "whoami").expect("el json debería estar bien");
    
    assert_json_snapshot_matches!("oci_json", &actual, {
            ".process.user.uid" => 42,
            ".process.user.gid" => 42,
    });
    

    Después de cambiar el nombre del método a ‘assert_json_snapshot’, obtuve el siguiente error:

    let actual = &create_oci_json(&site, "whoami").expect("el json debería estar bien");
    let expect = json!({
            ".process.user.uid" : "42",
            ".process.user.gid" : "42"
    });
    
    assert_json_snapshot!(vec![actual, &expect]);
    

    El mensaje de error fue:

    Errores omitidos:
            501 |+]
    ────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    Para actualizar las instantáneas, ejecuta `cargo insta review`
    El subproceso 'container::contained_v2::tests::test_create_oci_json' entró en pánico en 'la aserción de la instantánea para 'oci_json' falló en la línea 413', /Users/mohamednizar/.cargo/registry/src/github.com-1ecc6299db9ec823/insta-1.8.0/src/runtime.rs:1048:9
    

    Me di cuenta de que había olvidado ejecutar el comando cargo insta review, que actualiza las instantáneas. Después de ejecutar este comando, se resolvió el problema.

Comments are closed.