Main Content

matlab.unittest.fixtures.PathFixture 类

命名空间: matlab.unittest.fixtures
超类: matlab.unittest.fixtures.Fixture

用于将文件夹添加到 MATLAB 路径的脚手架

描述

matlab.unittest.fixtures.PathFixture 类提供了用于向 MATLAB® 路径添加文件夹的脚手架。当测试框架设置脚手架时,该脚手架会将当前文件夹添加到路径中。当框架拆解脚手架时,脚手架将路径还原到其原始状态。

matlab.unittest.fixtures.PathFixture 类是一个 handle 类。

创建对象

描述

fixture = matlab.unittest.fixtures.PathFixture(folders) 创建一个脚手架,用于将指定的文件夹添加到路径中。

示例

fixture = matlab.unittest.fixtures.PathFixture(folders,Name,Value) 使用一个或多个名称-值参量设置其他选项。例如,fixture = matlab.unittest.fixtures.PathFixture("myFolder","IncludingSubfolders",true) 创建一个脚手架,该脚手架将 myFolder 及其所有子文件夹添加到该路径中。

输入参量

全部展开

要添加到路径的文件夹,指定为字符串数组、字符向量或字符向量元胞数组。您可以用相对路径指定 folders 中的文件夹,但相对路径必须在当前文件夹中。否则,您必须使用完整路径来指定文件夹。如果任一指定的文件夹不存在,MATLAB 将引发错误。

此参量设置 Folders 属性。

名称-值参数

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

示例: fixture = matlab.unittest.fixtures.PathFixture("myFolder",IncludingSubfolders=true)

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

示例: fixture = matlab.unittest.fixtures.PathFixture("myFolder","IncludingSubfolders",true)

是否在路径中包括 folders 的子文件夹,指定为数值或逻辑值 0 (false) 或 1 (true)。默认情况下,脚手架在路径中不包括 folders 的子文件夹。

路径中不能包含类、命名空间、privateresources 子文件夹,即使值为 true也是如此。

此参量设置 IncludeSubfolders 属性。

路径上要添加文件夹的位置,指定为 "begin""end"。默认情况下,脚手架将 folders 添加到路径的开头(顶部)。如果将值指定为 "end",脚手架会将 folders 添加到路径的末尾(底部)。

如果将此参量与 IncludingSubfolders 一起指定,脚手架会将指定的文件夹及其子文件夹作为单个模块添加到路径的顶部或底部。

此参量设置 Position 属性。

属性

全部展开

要添加到路径中的文件夹的完整路径,以字符串数组形式返回。

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

属性:

GetAccess
public
SetAccess
private

是否在路径中包含子文件夹,以逻辑值 0 (false) 或 1 (true) 形式返回。默认情况下,脚手架在路径中不包括子文件夹。

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

属性:

GetAccess
public
SetAccess
immutable

路径上要添加文件夹的位置,以 'begin''end' 形式返回。默认情况下,脚手架将文件夹添加到路径的顶部。

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

属性:

GetAccess
public
SetAccess
immutable

示例

全部折叠

使用 PathFixture 实例将文件夹临时添加到测试路径中。

此示例假设当前文件夹中存在 folderAfolderB。如果这些文件夹不存在,请创建它们。

[~,~] = mkdir("folderA")
[~,~] = mkdir("folderB")

在当前文件夹内一个名为 PathFixtureTest.m 的文件中创建 PathFixtureTest 类。该测试使用 PathFixture 实例将 folderAfolderB 添加到路径中。然后,它验证路径包含这些文件夹的名称。

classdef PathFixtureTest < matlab.unittest.TestCase
    methods (Test)
        function testPath(testCase)
            import matlab.unittest.fixtures.PathFixture
            import matlab.unittest.constraints.ContainsSubstring
            f = testCase.applyFixture(PathFixture(["folderA" "folderB"]));
            testCase.verifyThat(path,ContainsSubstring(f.Folders(1)))
            testCase.verifyThat(path,ContainsSubstring(f.Folders(2)))
        end
    end
end

运行测试。由于 folderAfolderB 都在路径中,因此测试通过。测试后,框架拆解脚手架,这会将路径还原到之前的状态。

runtests("PathFixtureTest");
Running PathFixtureTest
.
Done PathFixtureTest
__________

版本历史记录

在 R2013b 中推出