getNegativeDiagnosticFor

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

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

Описание

пример

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

Диагностика, что этот метод продукты выражается в отрицательном смысле ограничения. Например, гипотетический IsTasty ограничение, когда отрицается, должно выразить, что фактическое значение было "вкусным", когда это не должно было быть, и это должно описать детали о том, почему это, как находили, было вкусно.

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

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

constObj

BooleanConstraint экземпляр

actVal

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

Примеры

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

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

classdef HasSameSizeAs < matlab.unittest.constraints.BooleanConstraint
    
    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 = protected)
        function diag = getNegativeDiagnosticFor(constraint,actual)
            import matlab.unittest.diagnostics.StringDiagnostic
            if constraint.sizeMatchesExpected(actual)
                diag = StringDiagnostic(sprintf(...
                    ['Negated HasSameSizeAs failed.\nSize [%s] of '...
                    'Actual Value and Expected Value were the same '...
                    'but should not have been.'],int2str(size(actual))));
            else
                diag = StringDiagnostic('Negated HasSameSizeAs passed.');
            end
        end
    end

    methods(Access = private)
        function bool = sizeMatchesExpected(constraint,actual)
            bool = isequal(size(actual),size(constraint.ValueWithExpectedSize));
        end
    end

end