Skip to content

테스트

버그 레포팅, 에러 수정, 문서 업데이트 등에서는 테스트 코드를 작성하지 않아도 된다. 하지만 하우스의 핵심이 되는 중요한 기능을 작성 또는 수정하는 경우에는 반드시 테스트를 해야 한다.

플러터에서 Firebase 와 연결해서 테스트하기가 쉽지 않다. 각종 Mock 패키지들을 써야하는데 번거롭다. 또한 Integration 테스트 코드 작성과 테스트가 만만치 않아서 하우스만의 테스트 기법을 통해서 테스트 한다.

참고로 모든 테스트는 test 폴더 아래에 저장된다.

유닛 테스트

가능한 많은 코드, 로직 등을 함수화 하여 유닛 테스트를 할 수 있도록 한다. 유닛 테스트는 플러터의 공식 문서에 있는 대로 하면 된다.

위젯 테스트

위젯 테스트는 Integration 테스트 보다는 빠르고 쉽게 작성하고 테스트 할 수 있다. 그래서 가능한 많은 코드들을 위젯 테스트로 할 수 있도록 한다. 위젯테스트는 플러터의 공식 문서에 있는 대로 하면 된다. 다만, 파이어베이스와 연결해서 테스트해야 한다면 하우스 테스트를 한다.

하우스 테스트

플러터에서 파이어베이스와 연결하여 테스트하기 쉽지 않다. 각종 Mock 패키지를 써야하고 Integration test 코드 작성 및 실행 속도가 느린 편이고, CI 셋업 및 관리하는 것이 만만치 않다. 그래서 이 모든 것을 보다 편하고 쉽게 테스트 환경을 제공하기 위해 하우스에서는 직접 테스트 로직을 개발해서 사용한다. 이름하여 하우스 테스트라고 부른다.

하우스 테스트의 개념은 간단하다. 단순히 앱을 실행하고, Firebase 에 연결을 한 다음, 테스트 관련 코드를 작성하고 테스트 하면 된다.

하우스 테스트를 할 때에는 앱과 분리하여 테스트 코드만 따로 실행하도록 example/lib/test.main.dart 가 제공된다. 이 파일을 실행하여 하우스 테스트를 수행하도록 한다.