代码之家  ›  专栏  ›  技术社区  ›  codeme

如何JUnit测试定制ArrayList的add方法?

  •  0
  • codeme  · 技术社区  · 9 年前

    我使用一个可调整大小的数组实现了我的自定义ArrayList,我想对我的add方法进行单元测试,以检查是否将正确的值插入到正确的位置。我的add方法如下所示:

    public class MyArrayList<T> implements ArrayListInterface {
    
    private int max=20;
    private int index = 0;
    private int[] a = new int[max];
    
    @Override
    public void add(int value) {
        if(index>max-1) {
            resize();
        }
        a[index] = value;
        index++;
    
    
    }
    

    我知道,我可以将我的方法设置为布尔值并检查方法返回的内容,但我想检查是否将正确的值添加到正确的位置。我的问题是,我的数组是私有的,因此只有通过getter才能获得它的值。为我的数组制作一个getter,并将其与测试的实际结果进行比较,这是一个好的解决方案吗?

    我检查了同一主题中的其他几个stackoverflow问题,但我找不到任何解决问题的方法。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Egor    9 年前

    添加一个 get() ( get(position) , getLast() 等)方法,并使用此方法进行测试。单元测试应该通过其接口来练习类,而不必关心内部实现。任何其他与您的 MyArrayList 将通过 add() 获取() .