exponenta event banner

matlab.unittest.Test class

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

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

Описание

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

Свойства

Name

Название Test элемент.

ProcedureName

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

TestClass

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

BaseFolder

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

Parameterization

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

SharedTestFixtures

Вектор строки приборов, необходимых для испытания. 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'   }