1
我有控制器,它支持uploadnig文件。它内部是一种验证文件中数据的方法。如何将字符串保存为FormFile格式的文件
IEnumerable<ValidationResult> Validate(ICollection<IFormFile> files)
它完美地工作。现在我需要为这个控制器写测试。而我的问题是:如何将文件格式的光盘传送到我的功能FormFile
格式?
我有控制器,它支持uploadnig文件。它内部是一种验证文件中数据的方法。如何将字符串保存为FormFile格式的文件
IEnumerable<ValidationResult> Validate(ICollection<IFormFile> files)
它完美地工作。现在我需要为这个控制器写测试。而我的问题是:如何将文件格式的光盘传送到我的功能FormFile
格式?
一般来说,实现类似这样的接口的原因是帮助您可以测试它。
你可以随便写一个实现IFormFile
传递给你的控制器方法从测试
public class TestFormFile : IFormFile
{
// Implementation here
}
见documentation所有属性&方法,你必须实现一个测试类。
你的实现应该大概需要在构造函数中的字符串内容,并实现对IFormFile
3种方法的时候使用它 - 例如一个用于OpenReadStream
可利用的MemoryStream
(注implemnted,你需要知道的编码您的测试字符串!):
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.
}
“FormFile”似乎不是默认的.NET类库的一部分。请添加您的问题:(1)指向“FormFile”类文档的链接,以及(2)您正在使用的第三方库的标签。 – Heinzi
Microsoft.AspNetCore.Http.IFormFile。我的坏它来自.Net核心 – MKasprzyk
我的答案是一个普遍的 - 我不知道你的“字符串”来自哪里,以及它如何与这个问题。 – Jamiec