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