matlab.unittest.Test class

Пакет: matlab.unittest
Суперклассы: matlab.unittest.TestSuite

Спецификация метода одиночного испытания

Описание

The matlab.unittest.Test класс содержит информацию, необходимую для TestRunner объект, чтобы запустить одну Test метод TestCase класс. Скалярное Test образец является основным элементом, содержащимся в TestSuite массивы. Простой массив Test образцы являются обычно используемой формой TestSuite массив.

Свойства

Name

Имя Test элемент.

ProcedureName

Имя процедуры тестирования, которая запускается для Test элемент. В основанном на классах тесте ProcedureName - имя метода тестирования. В функциональном тесте это имя локальной функции, которая содержит тест. В тесте на основе скриптов это имя сгенерировано из заголовка тестового раздела. В отличие от Name свойство, ProcedureName не содержит ни имени класса или пакета, ни сведений о параметризации.

TestClass

Имя тестового класса для TestCase. Если a Test элемент не является тестом на основе классов, тогда TestClass - пустая строка.

BaseFolder

Имя папки, содержащей файл, определяющий содержание теста. Для тестов, определенных в пакетах, базовая папка является родительским элементом папки пакета верхнего уровня.

Parameterization

Вектор-строка параметров, необходимых для теста. The Parameterization свойство содержит все параметризованные данные, требуемые TestRunner.

SharedTestFixtures

Вектор-строка фиксаторов, необходимых для испытания. The SharedTestFixtures свойство содержит все фиксаторы, заданные в SharedTestFixtures атрибут уровня класса TestCase класс.

Tags

Массив ячеек из тегов, примененных к Test элемент.

Примеры

свернуть все

В текущей папке создайте файл с именем BankAccountTest.m содержащий следующий тестовый класс.

classdef BankAccountTest < matlab.unittest.TestCase
    
    methods (TestClassSetup)
        function addBankAccountClassToPath(testCase)
            p = path;
            testCase.addTeardown(@path,p);
            addpath(fullfile(matlabroot,'help','techdoc','matlab_oop',...
                'examples'));
        end
    end
    
    methods (Test)
        function testConstructor(testCase)
            b = BankAccount(1234, 100);
            testCase.verifyEqual(b.AccountNumber, 1234, ...
                'Constructor failed to correctly set account number');
            testCase.verifyEqual(b.AccountBalance, 100, ...
                'Constructor failed to correctly set account balance');
        end
        
        function testConstructorNotEnoughInputs(testCase)
            import matlab.unittest.constraints.Throws;
            testCase.verifyThat(@()BankAccount, ...
                Throws('MATLAB:minrhs'));
        end
        
        function testDesposit(testCase)
            b = BankAccount(1234, 100);
            b.deposit(25);
            testCase.verifyEqual(b.AccountBalance, 125);
        end
        
        function testWithdraw(testCase)
            b = BankAccount(1234, 100);
            b.withdraw(25);
            testCase.verifyEqual(b.AccountBalance, 75);
        end
        
        function testNotifyInsufficientFunds(testCase)
            callbackExecuted = false;
            function testCallback(~,~)
                callbackExecuted = true;
            end
            
            b = BankAccount(1234, 100);
            b.addlistener('InsufficientFunds', @testCallback);
            
            b.withdraw(50);
            testCase.assertFalse(callbackExecuted, ...
                'The callback should not have executed yet');
            b.withdraw(60);
            testCase.verifyTrue(callbackExecuted, ...
                'The listener callback should have fired');
        end
    end
end

Создайте набор Test объекты из всех Test методы в BankAccountTest класс.

import matlab.unittest.TestSuite 
suite = TestSuite.fromClass(?BankAccountTest); 
whos suite
  Name       Size            Bytes  Class                   Attributes

  suite      1x5             10502  matlab.unittest.Test   

Каждый тест является matlab.unittest.Test объект.

Отобразите Test имена элементов.

{suite.Name}'
ans =

  5×1 cell array

    {'BankAccountTest/testConstructor'               }
    {'BankAccountTest/testConstructorNotEnoughInputs'}
    {'BankAccountTest/testDesposit'                  }
    {'BankAccountTest/testWithdraw'                  }
    {'BankAccountTest/testNotifyInsufficientFunds'   }