matlab.unittest.constraints. Класс ReturnsTrue

Пакет: matlab.unittest.constraints
Суперклассы: matlab.unittest.constraints. Ограничение

Ограничительный указатель на функцию определения, который возвращает true

Конструкция

ReturnsTrue обеспечивает ограничение, указывающее, что указатель на функцию, который возвращает true. Ограничение удовлетворено только указателем на функцию, который возвращает скаляр, логический со значением true.

Примеры

свернуть все

Эти сравнения показывают, например, только. Существуют другие ограничения, которые могут лучше обработать конкретные сравнения.

Создайте контрольный пример для интерактивного тестирования.

import matlab.unittest.TestCase
import matlab.unittest.constraints.ReturnsTrue

testCase = TestCase.forInteractiveUse;

Проверьте, что ограничение ReturnsTrue удовлетворено значением, возвращенным указателем на true.

testCase.verifyThat(@true, ReturnsTrue)
Interactive verification passed.

Проверьте, что ограничение ReturnsTrue не удовлетворено указателем на false.

testCase.verifyThat(@false, ReturnsTrue)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
ReturnsTrue failed.
--> The function handle should have evaluated to "true".
--> Returned value:
             0

Actual Function Handle:
        @false

Проверьте, что вызов isequal возвращает true.

testCase.verifyThat(@() isequal(1,1), ReturnsTrue)
Interactive verification passed.

Проверьте, что функция, которая возвращает 1 с двойным знаком, не удовлетворяет ограничение ReturnsTrue.

testCase.verifyThat(@() double(true), ReturnsTrue)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
ReturnsTrue failed.
--> The function handle should have returned a logical value. It was of type "double".
--> Returned value:
             1

Actual Function Handle:
        @()double(true)

Проверьте, что отрицание текстового сравнения 'a' и 'b' возвращает true.

testCase.verifyThat(@() ~strcmp('a','b'), ReturnsTrue)
Interactive verification passed.

Протестируйте, если сравнение 'a' к массиву ячеек {'a','a'} возвращает true.

testCase.verifyThat(@() strcmp('a',{'a','a'}), ReturnsTrue)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
ReturnsTrue failed.
--> The function handle should have returned a scalar. The return value had a size of [1  2].
--> Returned value:
             1     1

Actual Function Handle:
        @()strcmp('a',{'a','a'})

Ограничение не удовлетворено, потому что вызов strcmp заканчивается логический массив, не логический скаляр.

Советы

  • Чтобы отобразить пользовательские сравнения в форме указателя на функцию, используйте ReturnsTrue вместо IsTrue.

Смотрите также

|

Была ли эта тема полезной?