0

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

4

4 回答 4

3

如果您正在测试的代码将其删除,那么您显然需要在每次测试之前重新创建它。您可以使用单元测试库中的“设置”工具来完成它。

如果您使用的是 Visual Studio 单元测试框架,则通过使用TestInitialize属性对其进行装饰来创建此方法:

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

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

[SetUp]
public void Setup()
{
    // recreate file here
}
于 2013-10-04T15:54:08.053 回答
1

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

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

于 2013-10-04T15:53:49.057 回答
0

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

听起来您的测试可能正在使用文件的“生产”版本-这是一个坏主意,为了使您的方法更具可测试性,应该将文件的名称传递给它以进行处理和删除,这样您就可以使用测试文件进行测试。

于 2013-10-04T15:55:00.823 回答
0

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

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

如果您正在测试的方法以某种方式获得了它自己的文件名,那么您可以做相反的事情;在调用方法之前复制文件,然后在方法执行后,将复制的文件重命名为原始文件名。

于 2013-10-04T16:01:13.890 回答