TestSources是.NET Core和.NET框架的测试文件管理工具
在.NET测试中, TestSources可以易于处理,组织和使用测试文件。它大大简化了必须设置文件管理工具/代码,实现验证并启用对文件及其内容的适当访问的通常工作……必须在管理任何类型的文件,消耗时间和重复代码的文件上手动设置这些工作。那是邪恶的。但没有更多,这里是可以提供帮助的测试源。
要开始,请安装TestSources Nuget软件包:
dotnet add package TestSources在项目的根部,添加一个名为“ __testsources__ ”的新文件夹。它应该是小写的,在之前和之后有两个下划线“ _ ”。在我们的Tessources文件夹中,创建一个名为“ Atextfile.txt”的文本文件,然后添加“某些文本”或您喜欢的任何文本。
要获取此测试文件并将其在单元(或集成)测试中使用,请按照下一步:
插入testsources getfile语句TestSource.GetFile("aTextFile.txt");进入您的单元测试。
例子:
/// <summary>
/// Tests if the test file contains some text.
/// </summary>
[ Fact ]
public void TestThatTheTextFileContainsText ( )
{
// arrange
string fileName = "aTextFile.txt" ;
// act
string textInsideTheFile =
TestSource . GetFile ( fileName )
. AsString ( ) ;
// Assert
Assert . NotEmpty ( textInsideTheFile ) ;
} TestSource.GetFile()语句将获得带有指定名称的文件,该名称位于“ __testsources__ ”文件夹上。接下来,Midached AsString()语句将获取其内容,并用UTF-8编码以字符串形式使用它们。 (也可以配置)
您可以在“ __testsources__ ”文件夹中创建文件夹,除了操作系统设置的文件夹,没有任何限制。
文件也是如此,您可以在任何级别上添加它们,并利用您的想象力来组织测试文件,直到它使您感到满意。
鉴于它存在并且您已正确键入testSources root Directory, TestSource.GetFile(filename, true)将获取位于testsources root目录下的任何文件。
另外,您可以获取具有类似语句的文件夹的引用:
TestSource.GetFolder(foldername)将在TestSources root Directory的根目录中找到名为foldername的文件夹,而TestSource.GetFile(filename, true)将在其任何子文件夹中找到命名文件夹。
文件满足ITestSourceFile接口,这使我们能够检查其父,获取文件名,全名,包括路径,然后进行一些扩展,例如:
OpenRead() - 打开一个用于读取文件流的文件。AsString() - 读取当前文件并将其内容返回,作为字符串,带有默认的UTF8编码,可以覆盖。AsByteArray() - 读取当前文件并返回其内容的字节数组。AsFileStream() - 读取当前文件并返回文件流。AsMemoryStream() - 读取当前文件,并将其内容返回为存储器。AsStream() - 读取当前文件并将其内容返回为流。GetHash() - 给定一个加密哈希算法,返回文件的哈希。AsType<T>() - 将文件的内容返回作为具体类型的内容,应将其JSON内容化。AsJson() - 读取当前文件,并将其内容返回,作为JSON字符串,带有默认的UTF8编码,可以覆盖。 这些文件夹或目录满足了ITestSourceDir接口,这使我们能够检查其父,获取文件夹名称,全名,包括路径,然后进行一些扩展,例如:
GetFiles() - 返回此文件夹上包含的文件列表。当然,可以满足iTestSourceFile界面。GetFolders() - 返回此文件夹上包含的文件夹的列表。当然,可以满足iTestSourcedir接口。 (如果没有文件或文件夹,则集合为空) 他们只是工作,在那里没有特别的设置。
该项目采用了贡献者盟约定义的行为准则,以阐明我们社区的预期行为。有关更多信息,请参阅《瑞士生活OSS行为准则》。