如何在没有Moq的情况下在C#中实例化FormFile的实例?
我想测试一个函数,该函数通过集成测试将文件附加到RavenDB数据库中的文档。为此,我需要一个如何在没有Moq的情况下在C#中实例化FormFile的实例?,c#,.net-core,iformfile,C#,.net Core,Iformfile,我想测试一个函数,该函数通过集成测试将文件附加到RavenDB数据库中的文档。为此,我需要一个ifformfile的实例 显然,我无法从接口实例化,因此我尝试实例化一个从ifformfile接口继承的实例 using (var stream = File.OpenRead("placeholder.pdf")) { var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name))
ifformfile
的实例
显然,我无法从接口实例化,因此我尝试实例化一个从ifformfile
接口继承的实例
using (var stream = File.OpenRead("placeholder.pdf"))
{
var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name))
{
ContentType = "application.pdf"
};
}
但这会引发以下错误:
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.AspNetCore.Http.Internal.FormFile.set_ContentType(String value)
当我从代码中删除ContentType=“application.pdf”
时,它允许我实例化一个新实例,但不使用ContentType
如何使用
ContentType
和Moq
框架实例化FormFile
的实例?感谢Hans的评论,实际答案是:
using (var stream = File.OpenRead("placeholder.pdf"))
{
var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name))
{
Headers = new HeaderDictionary(),
ContentType = "application/pdf"
};
}
通过使用另一个框架“没有Moq框架”?老实说:为什么不想在单元测试环境中使用moq呢?它正是为这个目的而设计的。啊,对不起,我的错。这是一个集成测试。更新的问题。它是相当低级的,它希望您首先设置Headers属性。我只需要补充一点,这就是答案,ContentType同时具有Get和SetNullReferenceExceptions,这使得FormFile成为垃圾对象和模式。İt起作用了,谢谢!成功了,谢谢!但不清楚例外情况