代码之家  ›  专栏  ›  技术社区  ›  Tom Aalbers

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

  •  3
  • Tom Aalbers  · 技术社区  · 6 年前

    我想用集成测试来测试一个函数,它将文件附加到RavenDB数据库中的文档。为此,我需要一个 IFormFile .

    显然,我不能从接口实例化,所以我尝试实例化 FormFile 继承自 形锉 接口。

    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 .

    如何实例化的实例 表单文件 内容类型 如果没有 Moq 框架?

    1 回复  |  直到 6 年前
        1
  •  20
  •   Devator    6 年前

    由于汉斯的评论,实际的答案是:

    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"
        };
    }