如何将字符串保存为FormFile格式的文件

本文关键字:FormFile 格式 文件 保存 字符串 | 更新日期: 2023-09-27 17:59:59

我有支持上传nig文件的控制器。里面是一个验证文件中数据的方法。

IEnumerable<ValidationResult> Validate(ICollection<IFormFile> files)

它工作得很好。现在我需要给这个控制器写测试。我的问题是:如何将文件形式的光盘以FormFile格式传递到我的功能中?

如何将字符串保存为FormFile格式的文件

一般来说,实现这样的接口的原因是为了帮助您能够测试它。

您可以很容易地编写一个实现IFormFile的测试类,从测试传递给您的控制器方法

public class TestFormFile : IFormFile
{
   // Implementation here
}

请参阅所有属性的文档&方法。

您的实现可能应该在构造函数中获取字符串内容,并在实现IFormFile上的3个方法时使用它——例如,OpenReadStream的方法可以通过使用MemoryStream来实现(注意,您需要知道测试字符串的编码!):

public class TestFormFile : IFormFile
{
    private string testFileContents;
    public TestFormFile(string testFileContent)
    {
        this.testFileContents = testFileContents;
    }
    public Stream OpenReadStream()
    {
       return new MemoryStream(Encoding.UTF8.GetBytes(testFileContents));
    }
    // Implement Other methods and properties.
}