Main Content

matlab.unittest.constraints.ContainsSubstring 类

命名空间: matlab.unittest.constraints
超类: matlab.unittest.constraints.BooleanConstraint

测试值是否包含指定的字符串

描述

matlab.unittest.constraints.ContainsSubstring 类提供一个约束来测试值是否包含指定的字符串。

创建对象

描述

示例

c = matlab.unittest.constraints.ContainsSubstring(substring) 创建一个约束来测试值是否包含指定的字符串。包含 substring 的字符串标量或字符向量满足该约束。

示例

c = matlab.unittest.constraints.ContainsSubstring(substring,Name,Value) 使用一个或多个名称-值参量设置其他选项。例如,c = matlab.unittest.constraints.ContainsSubstring(substring,"IgnoringCase",true) 创建一个不区分大小写的约束。

输入参量

全部展开

预期的子字符串,指定为非空字符串标量或字符向量。

此参量设置 Substring 属性。

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

示例: c = matlab.unittest.constraints.ContainsSubstring(substring,IgnoringCase=true)

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: c = matlab.unittest.constraints.ContainsSubstring(substring,"IgnoringCase",true)

是否忽略大小写,指定为数值或逻辑值 0 (false) 或 1 (true)。默认情况下,约束区分大小写。

此参量设置 IgnoreCase 属性。

是否忽略空白,指定为数值或逻辑值 0 (false) 或 1 (true)。默认情况下,约束区分空白字符。空白字符包括空格 (' ')、换页符 ('\f')、换行符 ('\n')、回车符 ('\r')、水平制表符 ('\t') 和垂直制表符 ('\v')。

此参量设置 IgnoreWhitespace 属性。

注意

IgnoringWhitespacetrue 时,substring 必须包含至少一个非空白字符。

substring 必须出现的次数,指定为正整数标量。

您可以指定此名称-值参量,以便只对子字符串中不重叠的匹配项计数。例如,下面的试失败。

import matlab.unittest.TestCase
import matlab.unittest.constraints.ContainsSubstring

testCase = TestCase.forInteractiveUse;
testCase.verifyThat("ababa",ContainsSubstring("aba","WithCount",2))

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

属性

全部展开

预期的子字符串,以字符串标量或字符向量形式返回。

此属性由 substring 输入参量设置。

属性:

GetAccess
public
SetAccess
immutable

是否忽略大小写,以逻辑值 0 (false) 或 1 (true) 形式返回。默认情况下,约束区分大小写。

此属性由 IgnoringCase 名称-值参量设置。

属性:

GetAccess
public
SetAccess
private

是否忽略空白,以逻辑值 0 (false) 或 1 (true) 形式返回。默认情况下,约束区分空白字符。

此属性由 IgnoringWhitespace 名称-值参量设置。

属性:

GetAccess
public
SetAccess
private

示例

全部折叠

使用 ContainsSubstring 约束测试是否包含子字符串。

首先,导入此示例中使用的类。

import matlab.unittest.TestCase
import matlab.unittest.constraints.ContainsSubstring

创建一个供交互测试的测试用例。

testCase = TestCase.forInteractiveUse;

指定实际值。

str = "This Is One Long Message!";

验证 str 是否包含字符串 "One"

testCase.verifyThat(str,ContainsSubstring("One"))
Verification passed.

测试 str 是否包含字符串 "long"。测试失败,因为约束区分大小写。

testCase.verifyThat(str,ContainsSubstring("long"))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    ContainsSubstring failed.
    --> The value does not contain the substring.
    
    Actual Value:
        "This Is One Long Message!"
    Expected Substring:
        "long"

测试 str 是否包含字符串 "is" 两次。要使测试通过,请忽略大小写。

testCase.verifyThat(str,ContainsSubstring("is", ...
    "WithCount",2,"IgnoringCase",true))
Verification passed.

测试 str 是否包含字符串 "thisisone"。要使测试通过,请忽略大小写和空白字符。

testCase.verifyThat(str,ContainsSubstring("thisisone", ...
    "IgnoringCase",true,"IgnoringWhitespace",true))
Verification passed.

验证 str 不包含长度超过自身的字符串。

testCase.verifyThat(str,~ContainsSubstring( ...
    "This Is One Long Message With Extra Words!"))
Verification passed.

版本历史记录

在 R2013a 中推出

全部展开