[英]C# Unit Test How to mocK IFormFileCollection?
我有一个使用 IFormFileCollection 的方法,我想对它进行单元测试。
我的方法:
public IActionResultUploadBankAccount(){
IFormFileCollection files = Request.Form.Files;
if (!files.Any()) return Ok(new GeneralDto.Response("Check your files!"));
// and my codes
}
和我的授权码:
模拟授权.cs:
public static void Authorize(this ControllerBase controller,....){
//my codes
var bytes = Encoding.UTF8.GetBytes("This is a text file");
IFormFile file = new FormFile(new MemoryStream(bytes), 0, bytes.Length, "Data", @"\Mock\Images\testFile.jpg");
}
当我试图测试它时,方法会抛出错误,上面写着:
System.NullReferenceException:Object 引用未设置为 object 的实例。
我究竟做错了什么? 或者有什么方法可以测试 FormFileCollection?
由于 FormFileCollection 是FormFileCollection
的一部分,因此您不应该对其进行测试。 Microsoft 将测试此功能。
您应该测试的只是您自己的逻辑。
为了模拟IFormFileCollection
我会使用 mocking 框架,例如Moq并做这样的事情
private Mock<IFormFileCollection> _formFileCollectionMock;
private IClassToTest _sut;
public YourConstructor()
{
_formFileCollectionMock= new Mock<IFormFileCollection>();
_sut = new ClassToTest(_formFileCollectionMock.Object);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.