大型阵列上的文本夹具设置失败

时间:2014-06-18 21:56:09

标签: c# xamarin nunit

我试图测试我的方法是否有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");

        }

1 个答案:

答案 0 :(得分:2)

初始化OutOfMemoryException时,类初始值设定项可能会抛出overflowArray。由于.NET中对象的最大大小为2GB

,因此我无法解决这个问题

从.NET 4.5开始,您可以通过设置gcAllowVeryLargeObjects设置创建大小超过2GB的数组,但大小限制仍适用于其他对象。