Qu'est-ce qu'un «cadre d'affirmation»?

10

Je lisais sur le framework de tests unitaires js-test-driver, quand j'ai découvert que les gars derrière le framework ont ​​l'intention de l' intégrer à un framework d'assertion . Qu'est-ce qu'un cadre d'assertion? Est-ce une sorte de cadre de tests unitaires? Si tel est le cas, qu'est-ce qui est spécifique à de tels cadres?

Eldros
la source

Réponses:

9

Un exemple d'un cadre d'assertion serait Hamcrest qui a été intégré à JUnit 4. Hamcrest n'exécute pas de tests, il fournit simplement un moyen expressif d'écrire des assertions.

Ancienne affirmation d'égalité de style JUnit:

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

Affirmations d'égalité de style Hamcrest:

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

Essentiellement, un cadre d'assertion vous permet d'effectuer vos assertions d'une manière facilement extensible. Étant donné que le cadre d'assertion se concentre uniquement sur les assertions, il peut faire le travail bien mieux qu'un outil qui doit également collecter et exécuter des tests. NUnit a également adopté l'approche Hamcrest des assertions. Vous n'utiliseriez pas Hamcrest pour exécuter vos tests, simplement pour écrire les assertions.

Berin Loritsch
la source
2

JsTestDriver vise principalement à fournir un exécuteur de test, c'est-à-dire la façon dont vous exécutez les tests.

Il fournit un cadre d'assertion intégré, de style xUnit. Ceci est utilisé pour écrire réellement les tests (par exemple assertTrue, assertEquals, etc.). Cependant, il vous permet également de plug-in dans d'autres cadres d'assertion. Il existe actuellement des plugins disponibles pour Unit et Jasmine, qui offrent des assertions de style BDD.

rlayte
la source