Что такое «структура утверждений»?

10

Я читал о фреймворке модульного тестирования js-test-driver, когда обнаружил, что ребята за фреймворком намерены интегрировать его с фреймворком утверждений . Что такое основа утверждений? Это своего рода фреймворк для юнит-тестирования? Если это так, что конкретно для таких структур?

Eldros
источник

Ответы:

9

Примером Assertion Framework может быть Hamcrest, который был интегрирован в JUnit 4. Hamcrest не запускает тесты, он просто предоставляет выразительный способ написания утверждений.

Утверждение равенства старого стиля JUnit:

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

Утверждения равенства стиля Хамкреста:

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

По сути, структура утверждений позволяет вам выполнять ваши утверждения легко расширяемым образом. Поскольку структура утверждений фокусируется только на утверждениях, она может выполнять работу намного лучше, чем инструмент, который также должен собирать и запускать тесты. NUnit также принял подход Hamcrest к утверждениям. Вы не будете использовать Hamcrest для запуска ваших тестов, просто чтобы написать утверждения.

Берин Лорич
источник
2

JsTestDriver в первую очередь касается предоставления тестового прогона, т.е. способа выполнения тестов.

Он предоставляет встроенную платформу утверждений, которая имеет стиль xUnit. Это используется для написания тестов (например, assertTrue, assertEquals и т. Д.). Тем не менее, он также позволяет подключать альтернативные платформы утверждений. В настоящее время доступны плагины для Unit и Jasmine, которые предлагают утверждения в стиле BDD.

rlayte
источник