matlab.unittest.qualifications. Класс Assertable

Пакет: matlab.unittest.qualifications

Проверка, чтобы подтвердить предусловия теста

Описание

Класс Assertable обеспечивает проверку, чтобы подтвердить предусловия теста. Кроме действий, выполняемых для отказов, класс Assertable работает то же самое другими проверками matlab.unittest.

После отказа утверждения класс Assertable выдает AssertionFailedException, чтобы сообщить среде тестирования об отказе. Это является самым полезным, когда отказ в остальной части рендеринга точки утверждения текущего недопустимого метода тестирования, все же не предотвращает соответствующее выполнение других методов тестирования. Часто, вы используете утверждения, чтобы гарантировать, что предусловия текущего теста не нарушены или что фиксаторы настраиваются правильно. Убедитесь, что содержанием теста является Устойчивость к исключениям. Если вы не можете сделать исключение отключения фиксатора безопасным или если вы не можете восстановить его после отказа, используйте критические утверждения вместо этого.

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

Методы

assertClassУтверждайте точный класс заданного значения
assertEmptyУтверждайте, что значение пусто
assertEqualУтверждайте, что значение равно заданному значению
assertErrorУтверждайте, что функция выдает заданное исключение
assertFailПроизведите безусловный отказ утверждения
assertFalseУтверждайте, что значение является ложным
assertGreaterThanУтверждайте, что значение больше, чем заданное значение
assertGreaterThanOrEqualУтверждайте, что значение больше, чем или равно заданному значению
assertInstanceOfУтверждайте, что значение является объектом заданного типа
assertLengthУтверждайте, что значение задало длину
assertLessThanУтверждайте, что значение является меньше, чем заданное значение
assertLessThanOrEqualУтверждайте, что значение меньше чем или равно заданному значению
assertMatchesУтверждайте соответствия строки заданное регулярное выражение
assertNotEmptyУтверждайте, что значение не пусто
assertNotEqualУтверждайте, что значение не равно заданному значению
assertNotSameHandleУтверждайте, что значение не является указателем на заданный экземпляр
assertNumElementsУтверждайте, что значение задало количество элемента
assertReturnsTrueУтверждайте, что функция возвращает true, когда оценено
assertSameHandleУтверждайте, что два значения являются указателями на тот же экземпляр
assertSizeУтверждайте, что значение задало размер
assertSubstringУтверждайте, что строка содержит заданную строку
assertThatУтверждайте, что значение соответствует заданному ограничению
assertTrueУтверждайте, что значение верно
assertWarningУтверждайте, что функция выдает заданное предупреждение 
assertWarningFreeУтверждайте, что функция не выдает предупреждений

События

AssertionFailed

Инициированный на провальное утверждение. Объект QualificationEventData передается в функции обратного вызова слушателя.

AssertionPassed

Инициированный на передающее утверждение. Объект QualificationEventData передается в функции обратного вызова слушателя.

Примеры

свернуть все

Используйте assertable проверки, чтобы протестировать на предусловия. Этот пример создаст тест, чтобы записать многочлен в MAT-файл.

Создайте Тест DocPolynomSaveLoadTest. Обратитесь к следующему тесту DocPolynomSaveLoadTest на последующих шагах в этом примере. Шаги подсвечивают определенный код в функции testSaveLoad; операторы кода не предназначаются, чтобы быть выполненными вне контекста файла определения класса.

 Файл определения класса DocPolynomSaveLoadTest

Выполнить команды MATLAB® в “Запущенном Тесте DocPolynomSaveLoadTest”, добавляют файл DocPolynomSaveLoadTest.m к папке на вашем пути MATLAB.

Функция testSaveLoad состоит из следующих фаз:

  • Фаза 1: Setup — Создает и проверяет код предусловия.

  • Фаза 2: Осуществление — Создает объект DocPolynom и сохраняет его в MAT-файл.

  • Фаза 3: Проверьте — Тест, что объект был успешно сохранен.

  • Фаза 4: Отключение — Выполняет код отключения.

Задайте предусловие фазы 1. Для этого теста используйте временную папку для создания объекта DocPolynom. Предусловие для того, чтобы продолжить этот тест - то, что следующие команды выполняются успешно.

tempFolder = tempname; 
[success, message] = mkdir(tempFolder); 

Протестируйте результаты функции mkdir. Используйте метод assertTrue, чтобы протестировать аргумент mkdir success на ошибки. Если утверждение происходит, остаток от метода тестирования testSaveLoad недопустим, и тестом является отмеченный Incomplete.

testCase.assertTrue(success, ... 
    Diagnostic.join('Could not create the temporary folder.', ... 
        message)) 

Если сбои функции mkdir, MATLAB отображает диагностическое сообщение, Could not create the temporary folder, а также содержимое аргумента mkdir message.

Добавьте код фиксатора отключения. Создание временной папки является кодом настройки, который требует, чтобы соответствующий вызов функции rmdir восстановил MATLAB к исходному состоянию. Используйте метод addTeardown, чтобы гарантировать, что код отключения выполняется, даже когда исключение выдается посреди метода тестирования. Это делает тест Устойчивостью к исключениям.

testCase.addTeardown(@() testCase.cleanUpTemporaryFolder(tempFolder)) 

Поместите код отключения в функцию помощника. Несмотря на то, что оператор addTeardown происходит в том же блоке кода как оператор настройки mkdir, код cleanUpTemporaryFolder выполняется в фазе 4 метода тестирования.

В тесте DocPolynomSaveLoadTest функция помощника, cleanUpTemporaryFolder, выполняет функцию rmdir.

Задайте предусловие для создания допустимого MAT-файла. Предусловие для проверки, что объект DocPolynom был правильно сохранен и загружен, - то, что MAT-файл, DocPolynomFile.mat, был успешно создан. Следующий код в стендовых испытаниях двигателя Phase 2: Exercise это условие. Если утверждение происходит, остаток от метода тестирования testSaveLoad недопустим, и тестом является отмеченный Failed и Incomplete.

 testCase.assertEqual(exist('DocPolynomFile.mat','file'), 2, ... 
     Diagnostic.join('The mat file was not saved correctly.', ...
     @() dir(pwd)))

Если файл не был создан, MATLAB отображает диагностическое сообщение, The mat file was not saved correctly, а также содержимое временной папки.

Запустите тест DocPolynomSaveLoadTest.

tc = DocPolynomSaveLoadTest;
run(tc);
Running DocPolynomSaveLoadTest
.
Done DocPolynomSaveLoadTest
__________

Больше о

развернуть все

Введенный в R2013a

Была ли эта тема полезной?