matlab.unittest.diagnostics.Diagnostic class

Пакет: matlab.unittest.diagnostics

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

Описание

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

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

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

Свойства

Artifacts

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

DiagnosticText

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

Методы

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

Примеры

свернуть все

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