Main Content

matlab.unittest.constraints.ReturnsTrue クラス

名前空間: matlab.unittest.constraints
スーパークラス: matlab.unittest.constraints.Constraint

関数が true を返すかをテスト

説明

matlab.unittest.constraints.ReturnsTrue クラスは、関数が true を返すかどうかをテストするための制約を提供します。

matlab.unittest.constraints.ReturnsTrue クラスは handle クラスです。

作成

説明

c = matlab.unittest.constraints.ReturnsTrue は、関数が true を返すかどうかをテストするための制約を作成します。この制約は、1 (true) の logical スカラー値を返す関数ハンドルで満たされます。

すべて折りたたむ

ReturnsTrue 制約を使用して、関数をテストします。

最初に、この例で使用するクラスをインポートします。

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

対話型テスト用にテスト ケースを作成します。

testCase = TestCase.forInteractiveUse;

関数 trueReturnsTrue 制約を満たすかどうかをテストします。テストはパスします。

testCase.verifyThat(@true,ReturnsTrue)
Verification passed.

関数 false をテストします。テストは失敗します。

testCase.verifyThat(@false,ReturnsTrue)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    ReturnsTrue failed.
    --> The function handle did not evaluate to "true".
    --> Returned value:
              logical
            
               0
    
    Evaluated Function:
      function_handle with value:
    
        @false

2 つの等価な数値を与えた場合、isequal の呼び出しが true を返すかテストします。テストはパスします。

testCase.verifyThat(@() isequal(1,single(1)),ReturnsTrue)
Verification passed.

2 つの異なる文字が同一でないことが真であることを検証します。

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

true 値のベクトルを返す関数をテストします。戻り値が非スカラーであるため、テストは失敗します。

testCase.verifyThat(@() strcmp('a',{'a','a'}),ReturnsTrue)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    ReturnsTrue failed.
    --> The function handle did not return a scalar. The return value had a size of [1  2].
    --> Returned value:
              1×2 logical array
            
               1   1
    
    Evaluated Function:
      function_handle with value:
    
        @()strcmp('a',{'a','a'})

数値を返す関数をテストします。テストは失敗します。

testCase.verifyThat(@ones,ReturnsTrue)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    ReturnsTrue failed.
    --> The function handle did not return a logical value. The return value was of type "double".
    --> Returned value:
                 1
    
    Evaluated Function:
      function_handle with value:
    
        @ones

ヒント

  • ReturnsTrue の代替方法は IsTrue 制約です。IsTrue は実行速度が速く、使いやすいですが、ReturnsTrue はわずかに優れた診断情報を提供します。この例では両方のテストが失敗しますが、2 番目のテストは診断の一部として関数ハンドルを表示します。

    import matlab.unittest.TestCase
    import matlab.unittest.constraints.IsTrue
    import matlab.unittest.constraints.ReturnsTrue
    
    testCase = TestCase.forInteractiveUse;
    actual = 1;
    expected = 2;
    testCase.verifyThat(isequal(actual,expected),IsTrue)
    testCase.verifyThat(@() isequal(actual,expected),ReturnsTrue)

バージョン履歴

R2013a で導入

すべて展開する