Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JMockit模拟类中的array.sort()方法_Java_Jmockit - Fatal编程技术网

Java 使用JMockit模拟类中的array.sort()方法

Java 使用JMockit模拟类中的array.sort()方法,java,jmockit,Java,Jmockit,我尝试模拟Arrays.sort方法,以确保QuickSort类中的实现不会使用Arrays.sort。我该怎么做?这是我的尝试,结果是java.lang.StackOverflowerError @Test public void testQuickSort() { Integer[] array = {3, -7, 10, 3, 70, 20, 5, 1, 90, 410, -3, 7, -52}; Integer[] sortedArray = {-52, -7,

我尝试模拟Arrays.sort方法,以确保QuickSort类中的实现不会使用Arrays.sort。我该怎么做?这是我的尝试,结果是
java.lang.StackOverflowerError

  @Test
  public void testQuickSort() {

    Integer[] array = {3, -7, 10, 3, 70, 20, 5, 1, 90, 410, -3, 7, -52};
    Integer[] sortedArray = {-52, -7, -3, 1, 3, 3, 5, 7, 10, 20, 70, 90, 410};
    QuickSort<Integer> quicksort = new QuickSort<>();

    new Expectations(Arrays.class) {{
        Arrays.sort((Integer[]) any);
    }};

    quicksort.quicksort(array);

    // some asserts
    // assertArrayEquals(sortedArray, array);
    // ...
  }
@测试
公共void testQuickSort(){
整数[]数组={3,-7,10,3,70,20,5,1,90,410,-3,7,-52};
整数[]数组={52,-7,-3,1,3,3,5,7,10,20,70,90,410};
快速排序QuickSort=新建快速排序();
新的期望(Arrays.class){{
sort((整数[])any);
}};
快速排序。快速排序(数组);
//一些断言
//assertArrayEquals(SorterDarray,阵列);
// ...
}

您需要模拟它并限制调用
数组的时间。将
排序为
0

@Test
public void testQuickSort(@Mocked Arrays mock) {
    new Expectations() {{
        mock.sort((Integer[]) any);
        times = 0;
    }};

    quicksort.quicksort(array);
}

我可以这样模拟静态方法:

new MockUp<Arrays>() {
    @Mock
    public void sort(Object[] o) {
         System.out.println("Oh no.");
    }       
};

new MockUp

为什么要测试这个?我想测试快速排序方法的实现是否正确。这是在特定的测试框架内完成的。但对这个问题来说并不重要。。。