exponenta event banner

Способы записи единичных тестов

Чтобы управлять разработкой программного обеспечения и отслеживать регрессии в функциональных возможностях кода, можно написать модульные тесты для своих программ. Платформа модульного тестирования MATLAB ® поддерживает три схемы разработки тестов:

  • Модульные тесты на основе скриптов: каждый единичный тест записывается как отдельный раздел файла сценария теста. Можно выполнить базовую квалификацию, получить доступ к диагностике, которую платформа регистрирует по результатам тестирования, уточнить набор тестов, выбрав тесты, которые необходимо выполнить, и настроить тестовый запуск путем создания и настройки TestRunner объект.

  • Функциональные модульные тесты: запись каждого единичного теста как локальной функции в файл тестовых функций. Функциональные тесты соответствуют принципам тестирования xUnit. Помимо поддержки функциональных возможностей, обеспечиваемых тестами на основе сценариев, функциональные тесты предоставляют доступ к широкому набору функций разработки тестов. Например, можно использовать расширенные функции квалификации, включая ограничения, допуски и диагностику тестов.

  • Модульные тесты на основе классов: записывать каждый единичный тест как Test в файле определения класса. В дополнение к поддержке функциональных возможностей, обеспечиваемых тестами на основе сценариев и функций, тесты на основе классов предоставляют несколько расширенных функций разработки тестов и предоставляют доступ к полной функциональности платформы. Например, можно использовать общие тестовые приборы, параметризовать тесты и повторно использовать содержимое теста.

Test authoring schemes in order of increasing functionality: script-based tests, function-based tests, and class-based tests

Модульные тесты на основе сценариев

Тесты на основе сценариев позволяют:

  • Определите переменные для совместного использования тестами или предварительными условиями, необходимыми для тестов.

  • Выполнение базовых квалификаций с помощью assert функция. Например, можно использовать assert(isequal(actVal,expVal)) утверждать, что фактические и ожидаемые значения равны. (Расширенные функции квалификации поддерживаются только для тестов на основе функций и классов.)

  • Доступ к тестовой диагностике, записанной платформой. Дополнительные сведения см. в разделе Программный доступ к диагностике тестов. (Расширенные диагностические действия поддерживаются только для тестов на основе функций и классов.)

Как правило, с помощью тестов на основе сценариев создается тестовый файл и передается имя файла в runtests функция без явного создания набора Test элементы. При создании явного набора тестов (с помощью testsuite функции или метода matlab.unittest.TestSuite класс), существуют дополнительные функции, доступные в тестировании на основе сценариев. С явным набором тестов можно:

  • Уточните свой люкс, например, используя классы в matlab.unittest.selectors пакет. (Несколько селекторов применимы только для тестов на основе классов.)

  • Создать TestRunner и настройте его для выполнения тестов. Вы можете добавить классы плагинов в matlab.unittest.plugins пакет к испытательному питателю.

Дополнительные сведения о тестах на основе сценариев см. в разделах Тесты на основе сценариев и Расширенные тесты на основе сценариев.

Функциональные модульные тесты

Функциональные тесты поддерживают функциональность, обеспечиваемую тестами на основе сценариев. Кроме того, функциональные тесты позволяют:

  • Установите предустановленное состояние системы и верните его в исходное состояние после выполнения теста. Эти задачи можно выполнять один раз на тестовый файл или один раз на единичный тест. Дополнительные сведения см. в разделе Проверка записи с помощью функций установки и разлома.

  • Используйте классы приборов в matlab.unittest.fixtures пакет (с applyFixture метод) для управления настройкой и отрывом часто используемых действий тестирования.

  • Запись диагностической информации на определенном уровне детализации с помощью log способ.

  • Используйте полную библиотеку квалификаций в matlab.unittest.qualifications пакет. Чтобы определить, какую квалификацию использовать, см. Таблицу проверок, утверждений и других квалификаций.

  • Используйте расширенные функции квалификации, включая ограничения, прокси фактических значений, допуски и диагностику тестов. Можно использовать классы в matlab.unittest.constraints и matlab.unittest.diagnostics пакеты в вашей квалификации.

Дополнительные сведения о тестах на основе функций см. в разделах Тесты на основе функций записи и Расширенные тесты на основе функций.

Модульные тесты на основе классов

Тесты на основе классов поддерживают функциональность, обеспечиваемую тестами на основе сценариев и функций. Кроме того, тесты на основе классов позволяют:

Дополнительные сведения о тестах на основе классов см. в разделе Тесты на основе классов авторов в MATLAB.

Расширение структуры модульного тестирования

Платформа модульного тестирования предоставляет авторам инструментальных средств тестирования возможность расширить запись теста с помощью пользовательских ограничений, диагностики, приборов и подключаемых модулей. Например, можно создать пользовательский подключаемый модуль и использовать его для расширения тестового питателя при выполнении тестов единиц измерения на основе сценариев, функций или классов. Дополнительные сведения см. в разделе Расширение структуры модульного тестирования.

Связанные темы