getDiagnosticFor

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

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

Описание

пример

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

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

Входные параметры

actVal

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

constObj

Constraint экземпляр

Примеры

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

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

classdef HasSameSizeAs < matlab.unittest.constraints.Constraint
    
    properties(SetAccess = immutable)
        ValueWithExpectedSize
    end
    
    methods
        function constraint = HasSameSizeAs(value)
            constraint.ValueWithExpectedSize = value;
        end
        
        function bool = satisfiedBy(constraint,actual)
            bool = constraint.sizeMatchesExpected(actual);
        end
        
        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)
        function bool = sizeMatchesExpected(constraint,actual)
            bool = isequal(size(actual),size(constraint.ValueWithExpectedSize));
        end
    end
    
end