¿Qué es un "marco de afirmación"?

10

Estaba leyendo sobre el marco de prueba de unidad js-test-driver, cuando descubrí que los chicos detrás del marco pretenden que se integre con un marco de afirmación . ¿Qué es un marco de afirmación? ¿Es una especie de marco de pruebas unitarias? Si es el caso, ¿qué es específico de tales marcos?

Eldros
fuente

Respuestas:

9

Un ejemplo de un marco de afirmación sería Hamcrest, que se integró en JUnit 4. Hamcrest no ejecuta pruebas, simplemente proporciona una forma expresiva de escribir afirmaciones.

Antigua afirmación de igualdad de estilo JUnit:

assertEquals(constant, underTest);
// or for doubles
assertEquals(3.5, underTest, .001); // within 1/1000th

Afirmaciones de igualdad de estilo Hamcrest:

assertThat(underTest, Is.EqualTo(constant));
// or for doubles
assertThat(underTest, Is.EqualTo(3.5).Within(.001));

Esencialmente, un marco de afirmación le permite realizar sus afirmaciones de una manera fácilmente extensible. Debido a que el marco de afirmación se centra solo en las afirmaciones, puede hacer el trabajo mucho mejor que una herramienta que también tiene que recopilar y ejecutar pruebas. NUnit también ha adoptado el enfoque de Hamcrest para las afirmaciones. No utilizaría Hamcrest para ejecutar sus pruebas, simplemente para escribir las afirmaciones.

Berin Loritsch
fuente
2

JsTestDriver se ocupa principalmente de proporcionar un corredor de prueba, es decir, la forma en que ejecuta las pruebas.

Proporciona un marco de afirmación integrado, que es de estilo xUnit. Esto se utiliza para escribir realmente las pruebas (por ejemplo, afirmar verdadero, afirmar igualdad, etc.). Sin embargo, también le permite agregar plugins en marcos de aserción alternativos. Actualmente hay complementos disponibles para Unit y Jasmine, que ofrece afirmaciones de estilo BDD.

rlayte
fuente