RavenDBデータベースのドキュメントにファイルを添付する機能を、統合テストでテストしたいと思います。これには、IFormFile
のインスタンスが必要です。
明らかに、インターフェイスからインスタンス化することはできないので、FormFile
インターフェイスから継承する IFormFile
のインスタンスをインスタンス化しようとしました。
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
なしで新しいインスタンスをインスタンス化できます。
FormFile
フレームワークなしでContentType
を使用してMoq
のインスタンスをインスタンス化するにはどうすればよいですか?
ハンスのコメントのおかげで、実際の答えは次のとおりです。
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"
};
}