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