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