我已经获得了控制器支持的uploadnig文件。它的内部是一种验证文件中数据的方法。
IEnumerable<ValidationResult> Validate(ICollection<IFormFile> files)
它运作完美。现在,我需要为此控制器编写测试。我的问题是:如何以
FormFile
格式将文件格式的光盘传送到我的函数中? 最佳答案
通常,将这样的东西实现为接口的原因是为了帮助您进行测试。
您可以轻松地编写一个实现IFormFile
的测试类,以将其从测试传递给控制器方法
public class TestFormFile : IFormFile
{
// Implementation here
}
有关必须实现的所有属性和方法,请参见documentation。
您的实现可能应该将字符串内容包含在构造函数中,并在
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.
}