2014-06-18 61 views
0

我試圖測試我的方法溢出錯誤描述here。 出於某種原因運行測試失敗,錯誤「TestFixtureSetUp失敗」。 使用int[int.MaxValue]初始化數組可能有些問題。 有人可以解釋如何解決這個問題嗎?巨大的陣列文本夾具設置失敗

[TestFixture()] 
    public class FindRecursiveTest 
    { 

     int[] overflowArray = new int[int.MaxValue]; 

       [Test()] 
     public void TestOverflow() 
     { 
      int[] array = overflowArray; 
      int searchNumber = int.MaxValue; 
      Assert.AreEqual(-1, BinarySearcher.FindRecursive(searchNumber, array, 0,array.Length - 1), "key 0"); 

     } 

回答

2

初始化overflowArray時,類初始化可能是拋出OutOfMemoryException。有沒有辦法解決它,我知道的,因爲在.NET對象的最大大小爲2GB

與.NET 4.5開始,你可以通過設置gcAllowVeryLargeObjects設置創建陣列尺寸更大然後2GB,但大小限制仍然適用於其他對象。