Пакет: matlab.unittest.qualifications
Проверка, чтобы отфильтровать содержание теста
Assumable класс обеспечивает проверку, чтобы отфильтровать содержание теста. Кроме действий, выполняемых для отказов, Assumable класс работает то же самое другими классами проверки в matlab.unittest.qualifications пакет.
После отказа предположения, Assumable класс сообщает среде тестирования об отказе путем броска AssumptionFailedException объект. Среда затем отмечает текущее содержание теста, как отфильтровано и продолжает тестировать. Предположения гарантируют, что тест запущен только, когда определенным предусловиям соответствуют, но запущение теста, не удовлетворяя предусловиям не производит непройденный тест. Если предусловия, которым не соответствуют, предназначаются, чтобы произвести непройденный тест, используйте утверждения вместо предположений.
Когда отказ предположения производится в рамках метода TestCase класс, тип метода определяет, какие тесты отфильтрованы:
Test метод — маркеры инфраструктуры целый Test метод, как отфильтровано.
TestMethodSetup или TestMethodTeardown метод — маркеры инфраструктуры Test метод, чтобы запуститься для того экземпляра метода, как отфильтровано.
TestClassSetup или TestClassTeardown метод — маркеры инфраструктуры целый тестовый класс, как отфильтровано.
Когда вы используете предположения, гарантируете, что ваше содержание теста является безопасным исключением. Поскольку предположения не производят непройденные тесты, фрагменты вашего тестового кода могут тихо быть отфильтрованы. Чтобы избежать создания мертвого тестового кода, рассмотрите контроль ваших отфильтрованных тестов.
matlab.unittest.qualifications.Assumable классом является handle класс.
Assumable класс предоставляет несколько методов проверки для тестирования значений и ответа на отказы. Например, assumeEmpty тесты, что значение пусто, и assumeTrue тесты, что фактическое значение верно.
Примечание
Методы Assumable класс соответствует методам Verifiable класс. Они отличаются только в терминах типа проверки. Можно вызвать Assumable методы таким же образом вы вызываете Verifiable методы.
assumeEqual |
Примите тот Входные параметры
Аргументы name-value
|
assumeFail |
Произведите безусловный отказ предположения. Подобно Входные параметры
|
assumeFalse |
Примите что значение Входные параметры
|
assumeNotEqual |
Примите тот Входные параметры
|
assumeNotSameHandle |
Примите тот Входные параметры
|
assumeReturnsTrue |
Примите тот Входные параметры
|
assumeSameHandle |
Примите тот Входные параметры
|
assumeThat |
Примите тот Входные параметры
|
assumeTrue |
Примите что значение Входные параметры
|
assumeError |
Примите тот Входные параметры
Выходные аргументы
|
assumeWarning |
Примите тот Входные параметры
Выходные аргументы
|
assumeWarningFree |
Примите тот Входные параметры
Выходные аргументы
|
assumeGreaterThan |
Примите что все элементы Входные параметры
|
assumeGreaterThanOrEqual |
Примите что все элементы Входные параметры
|
assumeLessThan |
Примите что все элементы Входные параметры
|
assumeLessThanOrEqual |
Примите что все элементы Входные параметры
|
assumeEmpty |
Примите тот Входные параметры
|
assumeLength |
Примите тот Входные параметры
|
assumeNotEmpty |
Примите тот Входные параметры
|
assumeNumElements |
Примите тот Входные параметры
|
assumeSize |
Примите тот Входные параметры
|
assumeClass |
Примите что класс Входные параметры
|
assumeInstanceOf |
Примите тот Входные параметры
|
assumeMatches |
Примите тот Входные параметры
|
assumeSubstring |
Примите тот Входные параметры
|
| EventName | Триггер | Данные о событиях | Атрибуты события |
|---|---|---|---|
AssumptionFailed | Инициированный на провальное предположение. QualificationEventData объект передается функциям обратного вызова прослушивателя. | matlab.unittest.qualifications.QualificationEventData |
|
AssumptionPassed | Инициированный на передающее предположение. QualificationEventData объект передается функциям обратного вызова прослушивателя. | matlab.unittest.qualifications.QualificationEventData |
|
Используйте предположение, чтобы гарантировать, что ваши тесты могут запуститься только на платформе Linux®. Дайте среде тестирования команду фильтровать тесты, если MATLAB установлен на Microsoft® Windows® или macOS платформе.
В файле в вашей текущей папке создайте LinuxTests класс. Чтобы протестировать на платформу, задайте testPlatform метод в TestClassSetup methods блок. Метод использует вызов assumeTrue метод, чтобы протестировать тот MATLAB установлен на платформе Linux. Если предположение перестало работать, среда фильтрует целый тестовый класс.
classdef LinuxTests < matlab.unittest.TestCase methods (TestClassSetup) function testPlatform(testCase) testCase.assumeTrue(isunix && ~ismac, ... "Tests must run on a Linux platform.") end end end
Задайте свои тесты в methods блокируйтесь с Test атрибут. Тесты в этом примере в целях рисунка только.
classdef LinuxTests < matlab.unittest.TestCase methods (TestClassSetup) function testPlatform(testCase) testCase.assumeTrue(isunix && ~ismac, ... "Tests must run on a Linux platform.") end end methods (Test) function test1(testCase) testCase.verifyWarningFree(@rand) end function test2(testCase) testCase.verifyWarningFree(@() size([])) end end end
Запустите тесты на машине Windows. Поскольку сбои предположения на уровне настройки класса, среда фильтрует тесты, заданные LinuxTests класс.
runtests("LinuxTests")Running LinuxTests
================================================================================
All tests in LinuxTests were filtered.
Test Diagnostic: Tests must run on a Linux platform.
Details
================================================================================
Done LinuxTests
__________
Failure Summary:
Name Failed Incomplete Reason(s)
===============================================================
LinuxTests/test1 X Filtered by assumption.
---------------------------------------------------------------
LinuxTests/test2 X Filtered by assumption.
ans =
1×2 TestResult array with properties:
Name
Passed
Failed
Incomplete
Duration
Details
Totals:
0 Passed, 0 Failed, 2 Incomplete.
0.27782 seconds testing time.
В зависимости от настройки исполнителя тестов среда тестирования может отобразить диагностику, когда проверка передает или перестала работать. По умолчанию среда отображает диагностику только, когда проверка перестала работать. Можно заменить поведение по умолчанию путем настройки исполнителя тестов. Например, можно использовать DiagnosticsOutputPlugin экземпляр, чтобы отобразить и провальную и передающую диагностику события.
Чтобы добавить диагностическое сообщение в тест, используйте дополнительный diagnostic аргумент в любом из методов проверки. Можно задать diagnostic как массив строк, символьный массив, указатель на функцию или массив matlab.unittest.diagnostics.Diagnostic объекты.
Содержанием теста является exception safe, когда все отключение фиксатора выполняется с addTeardown метод TestCase или Fixture классы, или когда это выполняется с помощью объектных деструкторов после отказа. Безопасность исключения гарантирует, что непройденный тест не влияет на последующие тесты, даже когда исключение выдается.
Например, этот код не является безопасным исключением. Если тест перестал работать, среда тестирования не закрывает фигуру.
% Not exception safe
f = figure;
testCase.assumeEqual(actual,expected)
close(f)С другой стороны, этот код является безопасным исключением, потому что среда закрывает фигуру независимо от тестового результата.
% Exception safe
f = figure;
testCase.addTeardown(@close,f)
testCase.assumeEqual(actual,expected)Разъединение фиксатора с помощью addTeardown не гарантирует, что код является безопасным исключением. Этот код не является безопасным исключением, потому что вызов addTeardown помещается после теста. Если тест перестал работать, среда не может закрыть фигуру.
% Not exception safe
f = figure;
testCase.assumeEqual(actual,expected)
testCase.addTeardown(@close,f)
matlab.unittest.qualifications.Verifiable | matlab.unittest.qualifications.Assertable | matlab.unittest.qualifications.FatalAssertable | matlab.unittest.TestCase | matlab.unittest.qualifications.QualificationEventData
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.