主要内容

matlab.unittest.constraints.IsSubstringOf 类

R2026b

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

测试值是否为指定字符串的子字符串

描述

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

创建对象

描述

c = matlab.unittest.constraints.IsSubstringOf(superstring) 创建一个约束来测试值是否为指定字符串的子字符串。出现在 superstring 中的字符串标量或字符向量满足该约束。

示例

c = matlab.unittest.constraints.IsSubstringOf(superstring,Name=Value) 使用一个或多个名称-值参量指定选项。例如,c = matlab.unittest.constraints.IsSubstringOf(superstring,IgnoringCase=true) 创建一个不区分大小写的约束。

示例

输入参量

全部展开

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

此参量设置 Superstring 属性。

名称-值参数

全部展开

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

示例: c = matlab.unittest.constraints.IsSubstringOf(superstring,IgnoringCase=true)

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

此参量设置 IgnoreCase 属性。

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

此参量设置 IgnoreWhitespace 属性。

注意

当 IgnoringWhitespace 为 true 时,superstring 必须包含至少一个非空白字符。

要测试的值必须在 superstring 中出现的次数,指定为正整数标量。

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsSubstringOf

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

测试框架使用 count 函数来计算要测试的值出现的次数。如果要测试的值是空字符串,则 count 函数会计算位于 superstring 的开头和结尾以及每对字符之间的空字符串的数量。换句话说,如果 superstring 包含 n 个字符,则它包含 n+1 个空子字符串。

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

属性

全部展开

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

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

特性:

GetAccess
public
SetAccess
immutable

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

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

特性:

GetAccess
public
SetAccess
private

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

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

特性:

GetAccess
public
SetAccess
private

示例

全部折叠

使用 IsSubstringOf 约束测试是否为子字符串。

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsSubstringOf

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

testCase = TestCase.forInteractiveUse;

指定预期的大字符串。

str = "This Is One Long Message!";

验证值 "One" 是 str 的子字符串。

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

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

testCase.verifyThat("long",IsSubstringOf(str))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsSubstringOf failed.
    --> The value is not found within the superstring.
    
    Actual Value:
        "long"
    Expected Superstring:
        "This Is One Long Message!"

测试值 "is" 是否在 str 中出现两次。要使测试通过,请忽略大小写。

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

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

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

验证 "Longer" 不是 str 的子字符串。

testCase.verifyThat("Longer",~IsSubstringOf(str))
Verification passed.

版本历史记录

在 R2013a 中推出

全部展开