Java 如何在JUnit5中测试列表?

Java 如何在JUnit5中测试列表?,java,junit5,Java,Junit5,我尝试测试2个ArraySlist时出错。 似乎错误是在我的removeEndWith_at方法中说“toArray()未定义”。你们能给我一个建议如何测试这2个阵列列表吗 谢谢 Java版本:jdk-10.0.2 JUnit:5 [阵列拼接器类] import java.util.Iterator; import java.util.List; public class ArrayListIterator { /** * @param wordsAl : list of

我尝试测试2个ArraySlist时出错。 似乎错误是在我的removeEndWith_at方法中说“toArray()未定义”。你们能给我一个建议如何测试这2个阵列列表吗

谢谢

Java版本:jdk-10.0.2
JUnit:5

[阵列拼接器类]

import java.util.Iterator;
import java.util.List;

public class ArrayListIterator {

    /**
     * @param wordsAl : list of words
     */
    public List<String> removeEndWith_at(List<String> wordsAl) {
        Iterator<String> iterator = wordsAl.iterator();
        while (iterator.hasNext()) {
            if (iterator.next().endsWith("at"))
                iterator.remove();
        }

        return wordsAl;
    }

}
import java.util.Iterator;
导入java.util.List;
公共类阵列寄存器{
/**
*@param-wordsAl:单词列表
*/
使用_at(List wordsAl)删除公共列表{
迭代器迭代器=wordsAl.Iterator();
while(iterator.hasNext()){
if(iterator.next().endsWith(“at”))
iterator.remove();
}
返回单词;
}
}
[ArrayListeratorTest类]

import static org.junit.Assert.assertArrayEquals;

import java.util.Arrays;
import java.util.List;

import org.junit.jupiter.api.Test;

class ArrayListIteratorTest {

    ArrayListIterator alIterator = new ArrayListIterator();
    List<String> actualWords = Arrays.asList("Apple", "Bat", "Orange", "Cat");

    @Test
    void testremoveEndWith_at() {
        actualWords = alIterator.removeEndWith_at(actualWords);
        List<String> expectedvalue = Arrays.asList("Apple", "Orange");
        assertArrayEquals(expectedvalue.toArray(), actualWords.toArray());
    }

}

导入静态org.junit.Assert.AssertArrayQuals;
导入java.util.array;
导入java.util.List;
导入org.junit.jupiter.api.Test;
类ArrayLiteratorTest{
ArrayListIterator Alierator=新的ArrayListIterator();
List actualWords=Arrays.asList(“苹果”、“蝙蝠”、“橙色”、“猫”);
@试验
void testremoveEndWith_at(){
actualWords=alIterator.removeEndWith_at(actualWords);
List expectedvalue=Arrays.asList(“苹果”、“橙色”);
AssertArrayQuals(expectedvalue.toArray(),ActualWord.toArray());
}
}
查看

方法只是围绕原始元素创建一个包装器,并且在这个包装器上没有实现更改其大小的方法

另外,请看一下我在上的方法
removeEndWith_的实现。它比你的版本简单

        /**
     * @param wordsAl : list of words
     */
    public List<String> removeEndWith_at(List<String> wordsAl) {
            wordsAl.removeIf(s -> s.endsWith("at"));
            return wordsAl;
    }
/**
*@param-wordsAl:单词列表
*/
使用_at(List wordsAl)删除公共列表{
移除(s->s.endsWith(“at”);
返回单词;
}

使用Jupiter断言API比较
列表的两个实例时,试一试。

关于
assertEquals(expectedvalue,ActualWord)的情况如何
        /**
     * @param wordsAl : list of words
     */
    public List<String> removeEndWith_at(List<String> wordsAl) {
            wordsAl.removeIf(s -> s.endsWith("at"));
            return wordsAl;
    }