작성
·
35
0
안녕하세요! 섹션 4 강의를 보다보니 의문점이 생겨서요
Repository를 테스트하는 과정에서 test() 메서드에 .containsExactly를 사용하고있습니다.
강사님께서 내용과 순서가 모두 맞아야 한다고 설명하시더라고요.
메모리에서의 테스트나 DB를 조회할 때 순서를 보장할 수 없는 것으로 알고있는데 문제가 있을 수도 있지만 간단한 테스트를 위해서 사용한것인지 아니면 실제로도 이런식으로 테스트 하는지 궁금합니다.
관련한 질문들을 확인했으나 만족할만한 답변이 없어서 질문드립니다.
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. leedongjae625님.
containsExactly
메서드는 순서와 내용을 동시에 확인할 수 있도록 해주는 유용한 도구입니다. 이 메서드는 실제로 테스트 코드에서 많이 사용되며, 특히 순서가 보장되는 자료구조나 메서드를 사용할 때 유용합니다.
다만, 메모리를 직접 접근하거나 데이터베이스에서 결과를 가져올 때는 순서가 보장되지 않는 경우가 많습니다. 대부분의 데이터베이스는 정렬 조건을 명시적으로 지정하지 않으면 기본적으로 정렬 순서를 보장하지 않습니다.
강사님께서 사용하는 containsExactly
는 주로 교육적 목적으로 중요한 개념을 강조하기 위한 것입니다. 실제 프로젝트에서 테스트 작성 시에는 데이터가 순서대로 반환된다고 가정하면 안 되고, 필요에 따라 정렬 조건을 명시적으로 추가하여 테스트를 보완하는 것이 좋습니다.
아래의 관련 질문 링크를 참고하면 더욱 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.