getNegativeDiagnosticFor

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

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

Описание

пример

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

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

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

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

constObj

BooleanConstraint экземпляр

actVal

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

Примеры

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

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

classdef HasSameSizeAs < matlab.unittest.constraints.BooleanConstraint
    
    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 = protected)
        % Produce a diagnostic for the negated constraint
        function diag = getNegativeDiagnosticFor(constraint,actual)
            import matlab.unittest.diagnostics.StringDiagnostic
            if constraint.sizeMatchesExpected(actual) % Constraint satisfied incorrectly
                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)
        % 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