단위 테스트에서 웹 서비스나 데이터베이스에서 데이터를 가져오는 클래스에 의존할 때가 있습니다. 이는 다음과 같은 이유로 불편할 수 있습니다:실제 서비스나 데이터베이스를 호출하면 테스트 실행 속도가 느려집니다.테스트가 통과하더라도, 웹 서비스나 데이터베이스가 예상치 못한 결과를 반환하면 테스트가 실패할 수 있습니다. 이를 '불안정한 테스트(flaky test)'라고 합니다.실제 서비스나 데이터베이스를 사용하면 모든 성공 및 실패 시나리오를 테스트하기 어렵습니다.따라서 실제 웹 서비스나 데이터베이스에 의존하는 대신, 이러한 의존성을 "모킹(mock)"할 수 있습니다. 모킹은 실제 웹 서비스나 데이터베이스를 흉내 내어 상황에 따라 특정 결과를 반환할 수 있게 합니다. 일반적으로 클래스를 대체할 다른 클래스를 ..
앱에 더 많은 기능을 추가하거나 기존 기능을 변경할 때 어떻게 앱이 계속 정상적으로 작동하는지 확인할 수 있을까요? 바로 테스트를 작성함으로써 가능합니다. 단위 테스트는 단일 함수, 메서드 또는 클래스의 동작을 확인하는 데 유용합니다. test 패키지는 단위 테스트 작성을 위한 핵심 프레임워크를 제공하고, flutter_test 패키지는 위젯 테스트를 위한 추가 도구를 제공합니다. 이 레시피에서는 test 패키지에서 제공하는 주요 기능을 다음 단계들을 통해 시연합니다:test 또는 flutter_test 의존성 추가테스트 파일 생성테스트할 클래스 생성클래스에 대한 테스트 작성여러 테스트를 그룹으로 결합테스트 실행1. test 의존성 추가test 패키지는 Dart에서 테스트를 작성하는 기본 기능을 제공합니..
앱에 기능이 많아질수록 수동으로 테스트하기 어려워집니다. 자동화된 테스트는 기능과 버그 수정 속도를 유지하면서 앱이 배포되기 전에 올바르게 작동하는지 확인하는 데 도움을 줍니다. 자동화된 테스트는 몇 가지 범주로 나뉩니다:단위 테스트(unit test): 단일 함수, 메서드 또는 클래스를 테스트합니다.위젯 테스트(widget test): 단일 위젯을 테스트합니다. (다른 UI 프레임워크에서는 컴포넌트 테스트라고도 합니다.)통합 테스트(integration test): 전체 앱 또는 앱의 큰 부분을 테스트합니다. 일반적으로 잘 테스트된 앱은 코드 커버리지를 통해 많은 단위 테스트와 위젯 테스트를 추적하며, 중요한 사용 사례를 모두 다룰 수 있는 충분한 통합 테스트를 포함합니다. 이는 아래에서 볼 수 있는 ..