web-dev-qa-db-fra.com

Comment instancier une instance de FormFile en C # sans Moq?

Je veux tester une fonction qui attache des fichiers à des documents dans une base de données RavenDB avec un test d'intégration. Pour cela, j'ai besoin d'une instance de IFormFile.

Évidemment, je ne peux pas instancier à partir d'une interface, j'ai donc essayé d'instancier une instance de FormFile qui hérite de l'interface IFormFile.

using (var stream = File.OpenRead("placeholder.pdf"))
{
    var file = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name))
    {
        ContentType = "application.pdf"
    };
}

Mais cela jette l'erreur suivante:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.AspNetCore.Http.Internal.FormFile.set_ContentType(String value)

Lorsque je supprime le ContentType = "application.pdf" à partir du code, il me permet d'instancier une nouvelle instance mais sans ContentType.

Comment instancier une instance de FormFile avec le ContentType et sans le framework Moq?

8
Tom Aalbers

Grâce à Hans son commentaire, la vraie réponse est:

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