matlab.unittest.diagnostics. Диагностический класс

Пакет: 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