gpt4 book ai didi

java - 我如何在 JUnit5 中测试列表?

转载 作者:行者123 更新时间:2023-11-29 04:09:21 26 4
gpt4 key购买 nike

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

谢谢。

Java版本:jdk-10.0.2
JUnit:5

[ArrayListIterator类]

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;
}

}

[ArrayListIterator测试类]

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());
}

}

最佳答案

看看

remove() on List created by Arrays.asList() throws UnsupportedOperationException

Arrays.asList()

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

另请查看我对方法 removeEndWith_at 的实现。它比你的版本更简单

        /**
* @param wordsAl : list of words
*/
public List<String> removeEndWith_at(List<String> wordsAl) {
wordsAl.removeIf(s -> s.endsWith("at"));
return wordsAl;
}

关于java - 我如何在 JUnit5 中测试列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56018362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com