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'   }