Pruebas unitarias y TDD en Ruby: Matchers, Assertions y Estructura

Informática4,36 KB

Pruebas unitarias

  • assert(test, msg = nil): Comprueba que la condición es verdadera.

  • assert_equal(expected, actual, msg = nil): Verifica que dos valores sean iguales.

  • assert_not_equal(expected, actual, msg = nil): Verifica que dos valores no sean iguales.

  • assert_nil(object, msg = nil): Verifica que un objeto sea nil.

  • assert_not_nil(object, msg = nil): Verifica que un objeto no sea nil.

  • assert_match(pattern, string, msg = nil): Verifica que un string coincide con un patrón.

  • assert_no_match(pattern, string, msg = nil): Verifica que un string no coincide con un patrón.

  • assert_in_delta(expected, actual, delta, msg = nil): Verifica que dos números están dentro de un rango de diferencia (delta).

  • assert_raises(*exception_classes) { ... }: Verifica que se lanza una excepción.

  • assert_operator(object, operator, operand, msg = nil): Verifica que una operación devuelve verdadero (object.operator(operand)).

  • assert_instance_of(class, object, msg = nil): Verifica que un objeto es de una clase específica.

  • assert_kind_of(class, object, msg = nil): Verifica que un objeto es de una clase o una subclase.

  • assert_same(expected, actual, msg = nil): Verifica que dos objetos son el mismo objeto (misma referencia).

  • assert_not_same(expected, actual, msg = nil): Verifica que dos objetos no son el mismo objeto.

  • assert(defined?(Clase), msg)


TDD

Estructura

  • describe: Agrupa ejemplos relacionados.

  • context: Agrupa ejemplos en un contexto específico (útil para separar condiciones).

  • it: Define un caso de prueba o ejemplo.

Matchers

  • Igualdad y equivalencia

    • expect(actual).to eq(expected): Verifica que dos valores sean iguales.

    • expect(actual).to eql(expected): Verifica que dos valores sean estrictamente iguales.

    • expect(actual).to be(expected): Verifica que sean el mismo objeto (misma referencia).

    • expect(actual).to_not eq(expected): Verifica que dos valores no sean iguales.

  • Verdad/Falsedad/Nil

    • expect(actual).to be_truthy: Verifica que el valor es "truthy".

    • expect(actual).to be_falsey: Verifica que el valor es "falsey".

    • expect(actual).to be_nil: Verifica que es nil.

  • Tipos y clases

    • expect(actual).to be_a(Class): Verifica que sea de la clase específica.

    • expect(actual).to be_an_instance_of(Class): Verifica que sea exactamente de la clase.

  • Comparaciones

    • expect(actual).to be > value

    • expect(actual).to be >= value

    • expect(actual).to be < value

    • expect(actual).to be <= value

    • expect(actual).to be_between(min, max): Verifica que está en un rango.

  • Excepciones

    • expect { ... }.to raise_error: Verifica que se lanza un error.

    • expect { ... }.to raise_error(ErrorClass): Verifica que se lanza un error específico.

  • Expresiones regulares

    • expect(string).to match(/regex/): Verifica que coincide con un regex.

  • Colecciones

    • expect(collection).to include(item): Verifica que incluye un elemento.

    • expect(collection).to start_with(prefix): Verifica el inicio.

    • expect(collection).to end_with(suffix): Verifica el final.

Descargar

PDF Word HTML