Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 测试删除测试文件的方法_C#_Unit Testing - Fatal编程技术网

C# 测试删除测试文件的方法

C# 测试删除测试文件的方法,c#,unit-testing,C#,Unit Testing,我有一个方法,在处理后删除一个文件。我正在为它编写测试,在测试项目中使用相同的文件。但正如所料,此文件将在每次执行后删除。我怎样才能做到。。。每次都回来吗?^^如果我觉得这很愚蠢,那很抱歉我遇到过类似的情况,我需要加载sqlite db并对其执行操作,然后将其处理掉 最后,我将该文件作为嵌入式资源包括在内,将该资源流式输出,并在测试设置方法中创建一个文件,然后在清理过程中删除它。我遇到过一种类似的情况,需要加载sqlite db并对其执行操作,然后将其处理掉 最后,我将该文件作为嵌入式资源包括在

我有一个方法,在处理后删除一个文件。我正在为它编写测试,在测试项目中使用相同的文件。但正如所料,此文件将在每次执行后删除。我怎样才能做到。。。每次都回来吗?^^如果我觉得这很愚蠢,那很抱歉

我遇到过类似的情况,我需要加载sqlite db并对其执行操作,然后将其处理掉


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

我遇到过一种类似的情况,需要加载sqlite db并对其执行操作,然后将其处理掉


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

如果您正在测试的代码删除了该文件,那么您显然需要在每次测试之前重新创建该文件。您可以利用单元测试库中的“设置”功能来完成这项工作

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

[TestInitialize]
public void Setup()
{
   // recreate file here
}
[SetUp]
public void Setup()
{
    // recreate file here
}
如果使用NUnit,则使用
设置
属性:

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

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

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

[TestInitialize]
public void Setup()
{
   // recreate file here
}
[SetUp]
public void Setup()
{
    // recreate file here
}
如果使用NUnit,则使用
设置
属性:

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

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


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

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


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

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

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


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

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

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


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

是否尝试通过代码将文件保存到计算机上的物理位置?如果不是,则它仅驻留在内存中,并且在创建它的方法关闭时将被删除。为什么不在从测试运行该方法之前创建该文件呢?我刚刚在项目文件夹中添加了该文件。这些方法采用其路径,然后调用RemoveYou试图通过代码将文件保存到计算机上的物理位置吗?如果不是,则它仅驻留在内存中,并且在创建它的方法关闭时将被删除。为什么不在从测试运行该方法之前创建该文件呢?我刚刚在项目文件夹中添加了该文件。这些方法采用它的路径,然后调用removeAnd,如果您使用的是xUnit,只需在fixture构造函数中执行即可。为了完整性,您可以在测试分解方法中删除文件(如果存在),以保存留下的文件,如果测试失败,可能会导致设置失败。如果您使用的是xUnit,只需在fixture构造函数中执行此操作。为了完整性,您可以在测试分解方法中删除文件(如果存在),以保存遗留文件,如果测试失败,则可能导致设置失败。