gpt4 book ai didi

java - 尽管列表相同,assertEquals 仍无法通过测试

转载 作者:行者123 更新时间:2023-12-02 09:38:31 25 4
gpt4 key购买 nike

我想测试两个列表的相等性 - 实际列表(由测试方法返回)和预期列表(由我硬编码)。我查看这两个列表一个小时,看不出它们之间有任何区别。

堆栈跟踪:

java.lang.AssertionError: expected: java.util.Arrays$ArrayList<[Book{title='Pokrzyk', author='Puzyńska Katarzyna'}, Book{title='Odbiorę ci wszystko', author='Lillegraven Ruth'}, Book{title='Nóż. Harry Hole. Tom 12', author='Nesbo Jo'}, Book{title='Za zamkniętymi drzwiami', author='Paris B.A.'}, Book{title='Coraz większy mrok', author='Hoover Colleen'}, Book{title='Ta, która musi umrzeć', author='Lagercrantz David'}, Book{title='Teraz zaśniesz', author='Taylor C. L.'}, Book{title='Na skraju załamania', author='Paris B.A.'}, Book{title='Listy zza grobu', author='Mróz Remigiusz'}, Book{title='Rewizja. Joanna Chyłka. Tom 3', author='Mróz Remigiusz'}, Book{title='Odwet', author='Severski Vincent V.'}, Book{title='Immunitet. Joanna Chyłka. Tom 4', author='Mróz Remigiusz'}, Book{title='Inwigilacja. Joanna Chyłka. Tom 5', author='Mróz Remigiusz'}, Book{title='Zniknięcie Annie Thorne', author='Tudor C. J.'}, Book{title='Kontratyp. Joanna Chyłka. Tom 8', author='Mróz Remigiusz'}]> but was: java.util.ArrayList<[Book{title='Pokrzyk', author='Puzyńska Katarzyna'}, Book{title='Odbiorę ci wszystko', author='Lillegraven Ruth'}, Book{title='Nóż. Harry Hole. Tom 12', author='Nesbo Jo'}, Book{title='Za zamkniętymi drzwiami', author='Paris B.A.'}, Book{title='Coraz większy mrok', author='Hoover Colleen'}, Book{title='Ta, która musi umrzeć', author='Lagercrantz David'}, Book{title='Teraz zaśniesz', author='Taylor C. L.'}, Book{title='Na skraju załamania', author='Paris B.A.'}, Book{title='Listy zza grobu', author='Mróz Remigiusz'}, Book{title='Rewizja. Joanna Chyłka. Tom 3', author='Mróz Remigiusz'}, Book{title='Odwet', author='Severski Vincent V.'}, Book{title='Immunitet. Joanna Chyłka. Tom 4', author='Mróz Remigiusz'}, Book{title='Inwigilacja. Joanna Chyłka. Tom 5', author='Mróz Remigiusz'}, Book{title='Zniknięcie Annie Thorne', author='Tudor C. J.'}, Book{title='Kontratyp. Joanna Chyłka. Tom 8', author='Mróz Remigiusz'}]>
Expected :java.util.Arrays$ArrayList<[Book{title='Pokrzyk', author='Puzyńska Katarzyna'}, Book{title='Odbiorę ci wszystko', author='Lillegraven Ruth'}, Book{title='Nóż. Harry Hole. Tom 12', author='Nesbo Jo'}, Book{title='Za zamkniętymi drzwiami', author='Paris B.A.'}, Book{title='Coraz większy mrok', author='Hoover Colleen'}, Book{title='Ta, która musi umrzeć', author='Lagercrantz David'}, Book{title='Teraz zaśniesz', author='Taylor C. L.'}, Book{title='Na skraju załamania', author='Paris B.A.'}, Book{title='Listy zza grobu', author='Mróz Remigiusz'}, Book{title='Rewizja. Joanna Chyłka. Tom 3', author='Mróz Remigiusz'}, Book{title='Odwet', author='Severski Vincent V.'}, Book{title='Immunitet. Joanna Chyłka. Tom 4', author='Mróz Remigiusz'}, Book{title='Inwigilacja. Joanna Chyłka. Tom 5', author='Mróz Remigiusz'}, Book{title='Zniknięcie Annie Thorne', author='Tudor C. J.'}, Book{title='Kontratyp. Joanna Chyłka. Tom 8', author='Mróz Remigiusz'}]>
Actual :java.util.ArrayList<[Book{title='Pokrzyk', author='Puzyńska Katarzyna'}, Book{title='Odbiorę ci wszystko', author='Lillegraven Ruth'}, Book{title='Nóż. Harry Hole. Tom 12', author='Nesbo Jo'}, Book{title='Za zamkniętymi drzwiami', author='Paris B.A.'}, Book{title='Coraz większy mrok', author='Hoover Colleen'}, Book{title='Ta, która musi umrzeć', author='Lagercrantz David'}, Book{title='Teraz zaśniesz', author='Taylor C. L.'}, Book{title='Na skraju załamania', author='Paris B.A.'}, Book{title='Listy zza grobu', author='Mróz Remigiusz'}, Book{title='Rewizja. Joanna Chyłka. Tom 3', author='Mróz Remigiusz'}, Book{title='Odwet', author='Severski Vincent V.'}, Book{title='Immunitet. Joanna Chyłka. Tom 4', author='Mróz Remigiusz'}, Book{title='Inwigilacja. Joanna Chyłka. Tom 5', author='Mróz Remigiusz'}, Book{title='Zniknięcie Annie Thorne', author='Tudor C. J.'}, Book{title='Kontratyp. Joanna Chyłka. Tom 8', author='Mróz Remigiusz'}]>

我看到的唯一区别是预期行的末尾是空白,不知道为什么,但我认为它不应该让我的测试失败,因为它测试元素是否相同。

测试:

package bookstore.scraper.fetcher.empik;

import bookstore.scraper.book.Book;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.List;

import static org.junit.Assert.assertEquals;

@SpringBootTest
@RunWith(SpringRunner.class)
public class EmpikFetchingBookServiceTest {

@Autowired
EmpikFetchingBookService empikFetchingBookService;

@Test
public void get15BooksFromCrimeCategory() throws IOException {
File in = getFile("/CrimeCategoryEmpik.html");
Document doc = Jsoup.parse(in, "UTF-8");

List<Book> actualBooks = empikFetchingBookService.get15BooksFromCategory(doc);
List<Book> expectedBooks = prepare15CrimeBooks();

assertEquals(expectedBooks, actualBooks);
}

private static File getFile(String resourceName) {
try {
return new File(EmpikFetchingBookServiceTest.class.getResource(resourceName).toURI());
} catch (URISyntaxException e) {
throw new IllegalStateException(e);
}
}

private List<Book> prepare15CrimeBooks() {
return Arrays.asList(
new Book.BookBuilder().withAuthor("Puzyńska Katarzyna").withTitle("Pokrzyk").build(),
new Book.BookBuilder().withAuthor("Lillegraven Ruth").withTitle("Odbiorę ci wszystko").build(),
new Book.BookBuilder().withAuthor("Nesbo Jo").withTitle("Nóż. Harry Hole. Tom 12").build(),
new Book.BookBuilder().withAuthor("Paris B.A.").withTitle("Za zamkniętymi drzwiami").build(),
new Book.BookBuilder().withAuthor("Hoover Colleen").withTitle("Coraz większy mrok").build(),
new Book.BookBuilder().withAuthor("Lagercrantz David").withTitle("Ta, która musi umrzeć").build(),
new Book.BookBuilder().withAuthor("Taylor C. L.").withTitle("Teraz zaśniesz").build(),
new Book.BookBuilder().withAuthor("Paris B.A.").withTitle("Na skraju załamania").build(),
new Book.BookBuilder().withAuthor("Mróz Remigiusz").withTitle("Listy zza grobu").build(),
new Book.BookBuilder().withAuthor("Mróz Remigiusz").withTitle("Rewizja. Joanna Chyłka. Tom 3").build(),
new Book.BookBuilder().withAuthor("Severski Vincent V.").withTitle("Odwet").build(),
new Book.BookBuilder().withAuthor("Mróz Remigiusz").withTitle("Immunitet. Joanna Chyłka. Tom 4").build(),
new Book.BookBuilder().withAuthor("Mróz Remigiusz").withTitle("Inwigilacja. Joanna Chyłka. Tom 5").build(),
new Book.BookBuilder().withAuthor("Tudor C. J.").withTitle("Zniknięcie Annie Thorne").build(),
new Book.BookBuilder().withAuthor("Mróz Remigiusz").withTitle("Kontratyp. Joanna Chyłka. Tom 8").build());
}
}

最佳答案

如上所述here ,assertEquals方法使用了equals方法,比较实际的对象实例是否相同。要解决您的问题,您应该重写 equal() 方法来确定值本身是否相同。

关于java - 尽管列表相同,assertEquals 仍无法通过测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57298314/

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