gpt4 book ai didi

java - JUnit 测试 : Improvement to test case, 测试数组列表的长度?

转载 作者:行者123 更新时间:2023-12-01 13:16:26 26 4
gpt4 key购买 nike

下面是我想要测试的方法,它基本上是一种允许用户使用 ISBN 号码在图书馆系统中搜索书籍的方法:

/**
* Search by ISBN
* @param ISBN
* @return ArrayList of found books matching search criteria
*/
public ArrayList<Book> searchByISBN(String ISBN) {
ArrayList<Book> results = new ArrayList<Book>();

for (int loop = 0; loop < allBooks.size(); loop++) {
if (allBooks.get(loop).getISBN().equals(ISBN)) {
// add book to search
results.add(allBooks.get(loop));
}
}
return results;
}

下面是我为此方法编写的 JUnit 测试用例:

@Test
public void testSearchByISBN() {
LibrarySearch ls = new LibrarySearch(arrayList);
ArrayList<Book> results = ls.searchByISBN(ISBNB2);

if (results.contains(b2)){
assertTrue(true);
} else {
assertTrue(false);
}

}

我可以对这个测试用例进行任何明显的改进吗?我的讲师提到测试数组列表的长度,但我不确定会添加什么功能?

最佳答案

使用assertj验证结果。生成或编写您自己的匹配器。您可以使用 giava 轻松构建列表。使用工厂方法来创建书籍。你可能会得到类似的东西:

public void should_return_list_of_books_with_matching_ISBN() {

// given
List<Book> allBooks = Lists.newArrayList(
bookWithISBN("1"),
bookWithISBN("1"),
bookWithISBN("2"));
// when
List<Book> result = new LibrarySearch(allBooks).searchByISBN("1");

//then
assertThat(result)
.each(hasISBN("1"))
.hasSize(2);
}

关于java - JUnit 测试 : Improvement to test case, 测试数组列表的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431543/

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