私が割り当てていた金額が間違っていたので、これは議論の余地のある質問です. 400GB ではなく 400MB のはずだったのに… ごめんなさい!しかし、答えは良いです。
大きなファイルがアップロードされた場合に OutOfMemoryException をスローするメソッドを単体テストしようとしています。
私の問題は、単体テストでもこの例外がスローされていることです (同じ理由で推測します)。
タスク マネージャーによると、情報を正しく読み取っていれば十分な RAM があるため、単体テストがこのように失敗する理由がよくわかりません。
それぞれの単体テスト コードは次のとおりです。
var data = new List<byte>();
for(UInt64 i = 0; i < 400ul * 1024ul * 1024ul * 1024ul; i += 65536ul)
{
data.AddRange(new byte[65536]); // <-- throws exception here when i = 536870912
}
this.UploadedFileData = data.ToArray();
上記のコードの前に、次のことを試しました。
var data = new byte[400ul * 1024ul * 1024ul * 1024ul];
ただし、これによりエラーが発生します。算術演算でオーバーフローが発生しました。