matlab.unittest.diagnostics.Diagnostic class

Пакет: matlab.unittest.diagnostics

Основной класс интерфейса для matlab.unittest диагностика

Описание

The Diagnostic класс интерфейса является средством, с помощью которого matlab.unittest среда и ее клиенты упаковывают диагностическую информацию. Вся диагностика получена из Diagnosticявляются ли они поставляемой пользователем диагностическим тестом для индивидуального сравнения или диагностики, связанной со Constraint используется в сравнении.

Классы, которые получают от Diagnostic закодировать диагностические действия, которые должны быть выполнены. Они дают результат диагностики, который отображается соответствующим образом тестовой средой. В обмен на выполнение этого требования любое Diagnostic реализация может использоваться непосредственно с matlab.unittest проверки. Эти типы проверки выполняют диагностическое действие и сохраняют результат для используемой тестовой среды.

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

Свойства

Artifacts

Программные продукты, полученная во время последней диагностической оценки, возвращаются как массив программных продуктов.

DiagnosticText

The DiagnosticText свойство предоставляет средства, с помощью которых фактическая диагностическая информация передается потребителям диагностики, такие как среды тестирования. Свойство является вектором символов, который задается во время оценки diagnose способ.

Методы

диагностироватьВыполните диагностическое действие
соединениеОбъедините несколько объектов диагностики в один массив

Копировать семантику

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

import matlab.unittest.constraints.IsEqualTo

% Create a TestCase for interactive use
testCase = matlab.unittest.TestCase.forInteractiveUse;

% Create StringDiagnostic upon failure
testCase.verifyThat(1, IsEqualTo(2), 'User supplied Diagnostic')

% Create FunctionHandleDiagnostic upon failure
testCase.verifyThat(1, IsEqualTo(2), @() system('ps'))

% Usage of user defined Diagnostic upon failure (see definition below)
testCase.verifyThat(1, IsEqualTo(2), ProcessStatusDiagnostic...
    ('Could not close my third party application!'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Diagnostic definition
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
classdef ProcessStatusDiagnostic < matlab.unittest.diagnostics.Diagnostic
    % ProcessStatusDiagnostic - an example diagnostic
    %
    %   Simple example to demonstrate how to create a custom
    %   diagnostic.
    
    properties
        
        % HeaderText - user-supplied header to display
        HeaderText = '(No header supplied)';
    end
    
    methods
        function diag = ProcessStatusDiagnostic(header)
            % Constructor - construct a ProcessStatusDiagnostic
            %
            %   The ProcessStatusDiagnostic constructor takes an
            %   optional header to be displayed along with process
            %   information.
            if (nargin >0)
                diag.HeaderText = header;
            end
        end
        
        function diagnose(diag)
            
            [status, processInfo] = system('ps');
            if (status ~= 0)
                processInfo = sprintf(...
                    ['!!! Could not obtain status diagnostic information!!!'...
                    ' [exit status code: %d]\n%s'], status, processInfo);
            end
            diag.DiagnosticText = sprintf('%s\n%s', diag.HeaderText,...
                processInfo);
        end
    end
    
end % classdef