Che cos'è un "quadro di asserzioni"?


10

Stavo leggendo del framework di unit test di js-test-driver, quando ho scoperto che i ragazzi dietro il framework intendevano che fosse integrato con un framework di asserzioni . Cos'è una struttura di asserzioni? È una specie di framework di unit test? In tal caso, cosa è specifico di tali quadri?

Risposte:


9

Un esempio di Assertion Framework sarebbe Hamcrest che è stato integrato in JUnit 4. Hamcrest non esegue test, ma fornisce semplicemente un modo espressivo per scrivere asserzioni.

Vecchia affermazione di uguaglianza in stile JUnit:

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

Asserzioni di uguaglianza stile Hamcrest:

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

In sostanza, un framework di asserzioni consente di eseguire le asserzioni in un modo facilmente estensibile. Poiché il framework di asserzioni si concentra solo sulle asserzioni, può fare il lavoro molto meglio di uno strumento che deve raccogliere ed eseguire anche i test. NUnit ha anche adottato l'approccio di Hamcrest alle asserzioni. Non useresti Hamcrest per eseguire i test, ma solo per scrivere le asserzioni.


2

JsTestDriver si occupa principalmente di fornire un test-runner, ovvero il modo in cui si eseguono i test.

Fornisce un framework di asserzioni incorporato, che è in stile xUnit. Viene utilizzato per scrivere effettivamente i test (ad es. AssertTrue, assertEquals, ecc.). Tuttavia, consente anche di plug-in in framework di asserzioni alternativi. Al momento ci sono plugin disponibili per Unit e Jasmine, che offrono affermazioni in stile BDD.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.