Пакет: matlab.unittest.qualifications
Проверка, чтобы прервать выполнение теста
FatalAssertable
класс обеспечивает проверку, чтобы прервать выполнение теста. Кроме действий, выполняемых для отказов, FatalAssertable
класс работает то же самое другими классами проверки в matlab.unittest.qualifications
пакет.
После отказа критического утверждения, FatalAssertable
класс сообщает среде тестирования об отказе путем броска FatalAssertionFailedException
объект. Среда затем отображает диагностическую информацию для отказа и прерывает сеанс тестирования. Это поведение полезно, когда отказ является так основным, что продолжение тестирования не целесообразно. Кроме того, можно использовать критические утверждения в отключении фиксатора, чтобы гарантировать, что состояние среды восстанавливается правильно. Если можно сделать исключение отключения фиксатора безопасным и восстановить состояние после отказа, используйте утверждения вместо этого.
Критические утверждения предотвращают ложные непройденные тесты из-за отказа основного теста. Они также предотвращают ложные непройденные тесты, когда предшествующему тесту не удается восстановить состояние. Если среда не может правильно разъединить фиксаторы, необходимо вручную сбросить состояние. Например, вы можете должны быть перезапустить MATLAB®.
matlab.unittest.qualifications.FatalAssertable
классом является handle
класс.
FatalAssertable
класс предоставляет несколько методов проверки для тестирования значений и ответа на отказы. Например, fatalAssertEmpty
тесты, что значение пусто, и fatalAssertTrue
тесты, что фактическое значение верно.
Примечание
Методы FatalAssertable
класс соответствует методам Verifiable
класс. Они отличаются только в терминах типа проверки. Можно вызвать FatalAssertable
методы таким же образом вы вызываете Verifiable
методы.
fatalAssertEqual |
Фатально утверждайте тот Входные параметры
Аргументы name-value
|
fatalAssertFail |
Произведите безусловный отказ критического утверждения. Подобно Входные параметры
|
fatalAssertFalse |
Фатально утверждайте что значение Входные параметры
|
fatalAssertNotEqual |
Фатально утверждайте тот Входные параметры
|
fatalAssertNotSameHandle |
Фатально утверждайте тот Входные параметры
|
fatalAssertReturnsTrue |
Фатально утверждайте тот Входные параметры
|
fatalAssertSameHandle |
Фатально утверждайте тот Входные параметры
|
fatalAssertThat |
Фатально утверждайте тот Входные параметры
|
fatalAssertTrue |
Фатально утверждайте что значение Входные параметры
|
fatalAssertError |
Фатально утверждайте тот Входные параметры
Выходные аргументы
|
fatalAssertWarning |
Фатально утверждайте тот Входные параметры
Выходные аргументы
|
fatalAssertWarningFree |
Фатально утверждайте тот Входные параметры
Выходные аргументы
|
fatalAssertGreaterThan |
Фатально утверждайте что все элементы Входные параметры
|
fatalAssertGreaterThanOrEqual |
Фатально утверждайте что все элементы Входные параметры
|
fatalAssertLessThan |
Фатально утверждайте что все элементы Входные параметры
|
fatalAssertLessThanOrEqual |
Фатально утверждайте что все элементы Входные параметры
|
fatalAssertEmpty |
Фатально утверждайте тот Входные параметры
|
fatalAssertLength |
Фатально утверждайте тот Входные параметры
|
fatalAssertNotEmpty |
Фатально утверждайте тот Входные параметры
|
fatalAssertNumElements |
Фатально утверждайте тот Входные параметры
|
fatalAssertSize |
Фатально утверждайте тот Входные параметры
|
fatalAssertClass |
Фатально утверждайте что класс Входные параметры
|
fatalAssertInstanceOf |
Фатально утверждайте тот Входные параметры
|
fatalAssertMatches |
Фатально утверждайте тот Входные параметры
|
fatalAssertSubstring |
Фатально утверждайте тот Входные параметры
|
EventName | Триггер | Данные о событиях | Атрибуты события |
---|---|---|---|
FatalAssertionFailed | Инициированный после сбоя критического утверждения. QualificationEventData объект передается функциям обратного вызова прослушивателя. | matlab.unittest.qualifications.QualificationEventData |
|
FatalAssertionPassed | Инициированный после передачи критического утверждения. QualificationEventData объект передается функциям обратного вызова прослушивателя. | matlab.unittest.qualifications.QualificationEventData |
|
Протестируйте функцию, которая устанавливает значение переменной среды операционных систем. Если переменная окружения не может быть сброшена к ее исходному значению после теста, прервать сеанс тестирования с помощью отказа критического утверждения.
В файле в вашей текущей папке создайте setUserName
функция. Функция использует вызов setenv
установить 'UserName'
переменная окружения.
function setUserName(name) setenv('UserName',name) end
Протестировать setUserName
функционируйте, создайте тестовый класс под названием SetUserNameTest
в вашей текущей папке. Задайте необходимые члены класса для своего теста:
OriginalUserName
свойство — Использование это свойство сбросить переменную окружения после теста.
testUpdate
Test
метод — Хранилище исходное значение переменной окружения, вызовите функцию под тестом и проверьте, что функция устанавливает переменную окружения на ожидаемое значение. Поскольку изменения состояния во время теста, включайте вызов addTeardown
восстановить состояние однажды тестовые прогоны к завершению.
resetUserName
вспомогательный метод — Вызов setUserName
функционируйте, чтобы сбросить переменную окружения. Если операция не успешна, прервите сеанс тестирования с помощью отказа критического утверждения.
classdef SetUserNameTest < matlab.unittest.TestCase properties (SetAccess = private) OriginalUserName end methods (Test) function testUpdate(testCase) testCase.OriginalUserName = getenv('UserName'); setUserName('David') testCase.addTeardown(@() testCase.resetUserName) testCase.verifyEqual(getenv('UserName'),'David') end end methods (Access = private) function resetUserName(testCase) setUserName(testCase.OriginalUserName) testCase.fatalAssertEqual(getenv('UserName'),testCase.OriginalUserName) end end end
Запустите SetUserNameTest
класс. Тестовые передачи.
runtests("SetUserNameTest")
Running SetUserNameTest . Done SetUserNameTest __________
ans = TestResult with properties: Name: 'SetUserNameTest/testUpdate' Passed: 1 Failed: 0 Incomplete: 0 Duration: 0.0226 Details: [1×1 struct] Totals: 1 Passed, 0 Failed, 0 Incomplete. 0.022649 seconds testing time.
В зависимости от настройки исполнителя тестов среда тестирования может отобразить диагностику, когда проверка передает или перестала работать. По умолчанию среда отображает диагностику только, когда проверка перестала работать. Можно заменить поведение по умолчанию путем настройки исполнителя тестов. Например, можно использовать DiagnosticsOutputPlugin
экземпляр, чтобы отобразить и провальную и передающую диагностику события.
Чтобы добавить диагностическое сообщение в тест, используйте дополнительный diagnostic
аргумент в любом из методов проверки. Можно задать diagnostic
как массив строк, символьный массив, указатель на функцию или массив matlab.unittest.diagnostics.Diagnostic
объекты.
Содержанием теста является exception safe, когда все отключение фиксатора выполняется с addTeardown
метод TestCase
или Fixture
классы, или когда это выполняется с помощью объектных деструкторов после отказа. Безопасность исключения гарантирует, что непройденный тест не влияет на последующие тесты, даже когда исключение выдается.
Например, этот код не является безопасным исключением. Если тест перестал работать, среда тестирования не закрывает фигуру.
% Not exception safe
f = figure;
testCase.fatalAssertEqual(actual,expected)
close(f)
С другой стороны, этот код является безопасным исключением, потому что среда закрывает фигуру независимо от тестового результата.
% Exception safe
f = figure;
testCase.addTeardown(@close,f)
testCase.fatalAssertEqual(actual,expected)
Разъединение фиксатора с помощью addTeardown
не гарантирует, что код является безопасным исключением. Этот код не является безопасным исключением, потому что вызов addTeardown
помещается после теста. Если тест перестал работать, среда не может закрыть фигуру.
% Not exception safe
f = figure;
testCase.fatalAssertEqual(actual,expected)
testCase.addTeardown(@close,f)
matlab.unittest.qualifications.Verifiable
| matlab.unittest.qualifications.Assumable
| matlab.unittest.qualifications.Assertable
| matlab.unittest.TestCase
| matlab.unittest.qualifications.QualificationEventData
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.