Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有Moq的情况下在C#中实例化FormFile的实例?_C#_.net Core_Iformfile - Fatal编程技术网

如何在没有Moq的情况下在C#中实例化FormFile的实例?

如何在没有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))

我想测试一个函数,该函数通过集成测试将文件附加到RavenDB数据库中的文档。为此,我需要一个
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起作用了,谢谢!成功了,谢谢!但不清楚例外情况