Пакет: 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.