exponenta event banner

getDiagnosticFor

Класс: matlab.unittest.constraints.Constraint
Пакет: matlab.unittest.constraints

Произвести диагностику для сравниваемого значения

Описание

пример

diag = getDiagnosticFor(constObj,actVal) производит Diagnostic объект diag для ограничения constObj и значение actVal. При создании пользовательского ограничения необходимо реализовать getDiagnosticFor метод анализа значения actVal против ограничения constObj и вернуть matlab.unittest.diagnostics.Diagnostic объект.

Как правило, платформа тестирования вызывает этот метод при возникновении сбоя квалификации. Таким образом, предоставление более подробного анализа после отказа может быть более эффективно обработано getDiagnosticFor чем satisfiedBy способ.

Входные аргументы

constObj

Constraint случай

actVal

Значение для сравнения

Примеры

развернуть все

Создайте пользовательское ограничение, определяющее, имеет ли данное значение тот же размер, что и ожидаемое значение. Реализация getDiagnosticFor метод для оценки фактического значения по ограничению и предоставления Diagnostic объект.

classdef HasSameSizeAs < matlab.unittest.constraints.Constraint
    
    properties(SetAccess = immutable)
        ValueWithExpectedSize
    end
    
    methods
        % Class constructor
        function constraint = HasSameSizeAs(value)
            constraint.ValueWithExpectedSize = value;
        end
        
        % Determine if the actual value satisfies the constraint
        function bool = satisfiedBy(constraint,actual)
            bool = constraint.sizeMatchesExpected(actual);
        end
        
        % Produce a diagnostic for the constraint
        function diag = getDiagnosticFor(constraint,actual)
            import matlab.unittest.diagnostics.StringDiagnostic
            if constraint.sizeMatchesExpected(actual)
                diag = StringDiagnostic('HasSameSizeAs passed.');
            else
                diag = StringDiagnostic(sprintf(...
                    'HasSameSizeAs failed.\nActual Size: [%s]\nExpectedSize: [%s]',...
                    int2str(size(actual)),...
                    int2str(size(constraint.ValueWithExpectedSize))));
            end
        end
    end
    
    methods(Access = private)
        % Determine if the actual and expected values have the same size
        function bool = sizeMatchesExpected(constraint,actual)
            bool = isequal(size(actual),size(constraint.ValueWithExpectedSize));
        end
    end
    
end