Co to jest „struktura asercji”?

10

Czytałem o strukturze testowania jednostek js-test-driver, gdy dowiedziałem się, że osoby stojące za nią zamierzają zintegrować ją ze strukturą asercji . Co to jest struktura asercji? Czy jest to rodzaj struktury testowania jednostkowego? Jeśli tak, to co jest specyficzne dla takich ram?

Eldros
źródło

Odpowiedzi:

9

Przykładem Asercji Framework jest Hamcrest, który został zintegrowany z JUnit 4. Hamcrest nie uruchamia testów, zapewnia jedynie ekspresyjny sposób pisania asercji.

Stwierdzenie równości w starym stylu JUnit:

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

Twierdzenia o równości stylu Hamcrest:

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

Zasadniczo struktura asercji umożliwia wykonywanie asercji w łatwo rozszerzalny sposób. Ponieważ struktura asercji skupia się wyłącznie na asercjach, może wykonać zadanie znacznie lepiej niż narzędzie, które również musi zbierać i uruchamiać testy. NUnit przyjął również podejście Hamcrest do twierdzeń. Nie używałbyś Hamcrest do uruchamiania testów, a jedynie do pisania twierdzeń.

Berin Loritsch
źródło
2

JsTestDriver zajmuje się przede wszystkim zapewnieniem testera, tj. Sposobu wykonywania testów.

Zapewnia wbudowaną strukturę asercji, która ma styl xUnit. Służy to do napisania testów (np. AssertTrue, assertEquals itp.). Pozwala to jednak również na podłączanie alternatywnych struktur asercji. Obecnie dostępne są wtyczki do Unit i Jasmine, które oferują asercje w stylu BDD.

rlayte
źródło