Пакет: matlab.unittest.qualifications
Проверка, чтобы подтвердить предусловия теста
Assertable класс обеспечивает проверку, чтобы подтвердить предусловия теста. Кроме действий, выполняемых для отказов, Assertable класс работает то же самое другими классами проверки в matlab.unittest.qualifications пакет.
После отказа утверждения, Assertable класс сообщает среде тестирования об отказе путем броска AssertionFailedException объект. Это поведение является самым полезным, когда отказ в точке утверждения представляет остаток от текущего недопустимого теста, но не предотвращает соответствующее выполнение последующих тестов. Часто, вы используете утверждения, чтобы гарантировать, что предусловия текущего теста не нарушены или что фиксаторы настраиваются правильно. Если вы не можете сделать исключение отключения фиксатора безопасным или восстановить состояние среды после отказа, используйте критические утверждения вместо этого.
Когда отказ утверждения производится в рамках метода TestCase класс, тип метода определяет, какие тесты затронуты:
Test метод — маркеры инфраструктуры целый Test метод, как отказавший и неполный.
TestMethodSetup или TestMethodTeardown метод — маркеры инфраструктуры Test метод, чтобы запуститься для того экземпляра метода, как отказавший и неполный.
TestClassSetup или TestClassTeardown метод — маркеры инфраструктуры целый тестовый класс, как отказавший и неполный.
Утверждения позволяют остающимся тестам получить покрытие, когда предусловия нарушены в тесте, но состояние является восстанавливаемым. Они предотвращают ненужные отказы, не выполняя более поздние верификации, которые перестали работать из-за делаемых недействительным предусловий. Если отказ не влияет на предусловия теста или вызывает проблемы с настройкой фиксатора или отключением, используйте верификации, которые гарантируют, что полное содержание теста запускается.
matlab.unittest.qualifications.Assertable классом является handle класс.
Assertable класс предоставляет несколько методов проверки для тестирования значений и ответа на отказы. Например, assertEmpty тесты, что значение пусто, и assertTrue тесты, что фактическое значение верно.
Примечание
Методы Assertable класс соответствует методам Verifiable класс. Они отличаются только в терминах типа проверки. Можно вызвать Assertable методы таким же образом вы вызываете Verifiable методы.
assertEqual |
Утверждайте тот Входные параметры
Аргументы name-value
|
assertFail |
Произведите безусловный отказ утверждения. Подобно Входные параметры
|
assertFalse |
Утверждайте что значение Входные параметры
|
assertNotEqual |
Утверждайте тот Входные параметры
|
assertNotSameHandle |
Утверждайте тот Входные параметры
|
assertReturnsTrue |
Утверждайте тот Входные параметры
|
assertSameHandle |
Утверждайте тот Входные параметры
|
assertThat |
Утверждайте тот Входные параметры
|
assertTrue |
Утверждайте что значение Входные параметры
|
assertError |
Утверждайте тот Входные параметры
Выходные аргументы
|
assertWarning |
Утверждайте тот Входные параметры
Выходные аргументы
|
assertWarningFree |
Утверждайте тот Входные параметры
Выходные аргументы
|
assertGreaterThan |
Утверждайте что все элементы Входные параметры
|
assertGreaterThanOrEqual |
Утверждайте что все элементы Входные параметры
|
assertLessThan |
Утверждайте что все элементы Входные параметры
|
assertLessThanOrEqual |
Утверждайте что все элементы Входные параметры
|
assertEmpty |
Утверждайте тот Входные параметры
|
assertLength |
Утверждайте тот Входные параметры
|
assertNotEmpty |
Утверждайте тот Входные параметры
|
assertNumElements |
Утверждайте тот Входные параметры
|
assertSize |
Утверждайте тот Входные параметры
|
assertClass |
Утверждайте что класс Входные параметры
|
assertInstanceOf |
Утверждайте тот Входные параметры
|
assertMatches |
Утверждайте тот Входные параметры
|
assertSubstring |
Утверждайте тот Входные параметры
|
| EventName | Триггер | Данные о событиях | Атрибуты события |
|---|---|---|---|
AssertionFailed | Инициированный на провальное утверждение. QualificationEventData объект передается функциям обратного вызова прослушивателя. | matlab.unittest.qualifications.QualificationEventData |
|
AssertionPassed | Инициированный на передающее утверждение. QualificationEventData объект передается функциям обратного вызова прослушивателя. | matlab.unittest.qualifications.QualificationEventData |
|
Протестировать умножение DocPolynom объекты, сначала добавьте examples папка к пути поиска файлов и подтверждает это DocPolynom класс доступен для ваших тестов. Для получения дополнительной информации о DocPolynom класс, смотрите Полиномы Представления с Классами.
В файле в вашей текущей папке создайте DocPolynomMultiplicationTest класс, который тестирует умножение DocPolynom объекты. Получить доступ к DocPolynom в ваших тестах задайте addDocPolynomClassToPath метод в TestClassSetup methods блок. Используйте PathFixture экземпляр в рамках метода, чтобы добавить examples папка, включая DocPolynom файл определения класса, к пути. Затем используйте утверждение, чтобы подтвердить это, фиксатор сделал DocPolynom доступный для ваших тестов. Если утверждение перестало работать, среда приводит к сбою Test методы, не пытаясь запустить их. В противном случае среда запускает Test методы. Наконец, среда разъединяет фиксатор и восстанавливает путь к его предыдущему состоянию.
classdef DocPolynomMultiplicationTest < matlab.unittest.TestCase properties TextToDisplay = "Equation under test: " end methods (TestClassSetup) function addDocPolynomClassToPath(testCase) import matlab.unittest.fixtures.PathFixture folder = fullfile(matlabroot, ... "help","techdoc","matlab_oop","examples"); testCase.applyFixture(PathFixture(folder)) testCase.assertNotEmpty(?DocPolynom) end end end
Теперь добавьте свои тесты в methods блокируйтесь с Test атрибут.
classdef DocPolynomMultiplicationTest < matlab.unittest.TestCase properties TextToDisplay = "Equation under test: " end methods (TestClassSetup) function addDocPolynomClassToPath(testCase) import matlab.unittest.fixtures.PathFixture folder = fullfile(matlabroot, ... "help","techdoc","matlab_oop","examples"); testCase.applyFixture(PathFixture(folder)) testCase.assertNotEmpty(?DocPolynom) end end methods (Test) function test1(testCase) p1 = DocPolynom([1 0 3]); p2 = DocPolynom([5 2]); actual = p1 * p2; expected = DocPolynom([5 2 15 6]); diagnostic = [testCase.TextToDisplay ... "(x^2 + 3) * (5*x + 2) = 5*x^3 + 2*x^2 + 15*x + 6"]; testCase.verifyEqual(actual,expected,diagnostic) end function test2(testCase) p1 = DocPolynom([1 4]); p2 = DocPolynom([2 3]); p3 = DocPolynom([1 0 -1]); actual = p1 * p2 * p3; expected = DocPolynom([2 11 10 -11 -12]); diagnostic = [testCase.TextToDisplay ... "(x + 4) * (2*x + 3) * (x^2 - 1) = 2*x^4 + 11*x^3 + 10*x^2 - 11*x - 12"]; testCase.verifyEqual(actual,expected,diagnostic) end end end
Запустите тесты в DocPolynomMultiplicationTest класс. В этом примере, обеих из тестовой передачи.
runtests("DocPolynomMultiplicationTest")Running DocPolynomMultiplicationTest .. Done DocPolynomMultiplicationTest __________
ans =
1×2 TestResult array with properties:
Name
Passed
Failed
Incomplete
Duration
Details
Totals:
2 Passed, 0 Failed, 0 Incomplete.
0.38698 seconds testing time.
В зависимости от настройки исполнителя тестов среда тестирования может отобразить диагностику, когда проверка передает или перестала работать. По умолчанию среда отображает диагностику только, когда проверка перестала работать. Можно заменить поведение по умолчанию путем настройки исполнителя тестов. Например, можно использовать DiagnosticsOutputPlugin экземпляр, чтобы отобразить и провальную и передающую диагностику события.
Чтобы добавить диагностическое сообщение в тест, используйте дополнительный diagnostic аргумент в любом из методов проверки. Можно задать diagnostic как массив строк, символьный массив, указатель на функцию или массив matlab.unittest.diagnostics.Diagnostic объекты.
Содержанием теста является exception safe, когда все отключение фиксатора выполняется с addTeardown метод TestCase или Fixture классы, или когда это выполняется с помощью объектных деструкторов после отказа. Безопасность исключения гарантирует, что непройденный тест не влияет на последующие тесты, даже когда исключение выдается.
Например, этот код не является безопасным исключением. Если тест перестал работать, среда тестирования не закрывает фигуру.
% Not exception safe
f = figure;
testCase.assertEqual(actual,expected)
close(f)С другой стороны, этот код является безопасным исключением, потому что среда закрывает фигуру независимо от тестового результата.
% Exception safe
f = figure;
testCase.addTeardown(@close,f)
testCase.assertEqual(actual,expected)Разъединение фиксатора с помощью addTeardown не гарантирует, что код является безопасным исключением. Этот код не является безопасным исключением, потому что вызов addTeardown помещается после теста. Если тест перестал работать, среда не может закрыть фигуру.
% Not exception safe
f = figure;
testCase.assertEqual(actual,expected)
testCase.addTeardown(@close,f)
matlab.unittest.qualifications.Verifiable | matlab.unittest.qualifications.Assumable | matlab.unittest.qualifications.FatalAssertable | matlab.unittest.TestCase | matlab.unittest.qualifications.QualificationEventData
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.