测试删除测试文件的方法

本文关键字:测试 方法 文件 删除 | 更新日期: 2023-09-27 18:33:52

我有一个处理后删除文件的方法。我正在为它编写测试,在测试项目中使用相同的文件。但正如预期的那样,此文件将在每次执行后删除。我怎样才能做到...每次都回来?^^对不起,如果我很愚蠢

测试删除测试文件的方法

如果您正在测试的代码删除了它,那么您显然需要在每次测试之前重新创建它。您可以使用单元测试库中的"设置"工具来执行此操作。

如果您使用的是Visual Studio Unit-Test Framework,则此方法是通过使用TestInitialize属性修饰它来创建的:

[TestInitialize]
public void Setup()
{
   // recreate file here
}

如果您使用的是 NUnit,请使用 SetUp 属性:

[SetUp]
public void Setup()
{
    // recreate file here
}

我遇到了类似的情况,我需要加载 sqlite 数据库并对其执行操作,然后处理它。

我最终将该文件作为嵌入式资源包含在内,将资源流式传输出去并在测试设置方法中创建一个文件,然后在清理中将其删除。

在测试设置中,您将创建文件的测试版本,然后执行您的方法,然后检查该文件是否已消失。

听起来您的测试可能正在使用文件的"生产"版本 - 这是一个坏主意,为了使您的方法更易于测试,应该传递要处理和删除的文件的名称,以便您可以使用测试文件进行测试。

这取决于文件和测试的性质。通常,您可能希望让单元测试生成它将要操作的数据,以确保每次运行单元测试时数据集一致。

如果这不可行或不可行,那么我可能会做的是在单元测试中复制该文件,可能具有相同的名称加上 .test 扩展名,并将该文件传递给您正在测试的方法。

如果您正在测试的方法以某种方式自行获取文件名,那么您可以执行相反的操作;在调用该方法之前创建文件的副本,然后在方法执行后,将复制的文件重命名回原始文件名。