테스트를 하는 방법들
=> 수동 테스트 : 인간이 하는 테스트
=> 단위 테스트 : 1개 클래스를 테스트
=> 통합 테스트 : 여러개 연관된 클래스를 함께 테스트
화이트 박스 테스트
블랙박스 테스트
장점
TDD 의 단점
시간과 비용:
초기에 테스트 케이스를 작성하는 데 시간과 노력이 많이 필요할 수 있습니다.
특히 작은 프로젝트나 변동이 많은 환경에서는 초기 투자 비용이 높아질 수 있습니다.
학습 곡선:
TDD를 처음 적용하는 개발자들에게는 학습 곡선이 존재합니다.
TDD에 익숙해지기까지 일시적으로 생산성이 감소할 수 있습니다.
전체 커버리지 보장의 어려움:
모든 상황을 고려한 완벽한 테스트 커버리지를 확보하기는 어렵습니다.
특히 복잡한 시스템에서는 모든 경우를 고려하는 것이 어려울 수 있습니다.
테스트 유지 관리:
코드의 변경에 따라 테스트도 변경되어야 합니다.
테스트 코드의 유지보수가 제대로 이루어지지 않으면 테스트 코드가 불안정해질 수 있습니다.
위의 장담점을 고려시 TDD 를 반드시 도입할 필요는 없으나 경우에 따라 필요한 부분에 한해서 unit test 를 진행하는 것이 좋을 것 같음
Dart 에서 테스트 실행
1. test dependency 추가필요
flutter pub add dev:test
2. 테스트 파일 생성
my_app/
lib/
show.dart
test/
show_test.dart
테스트 파일은 테스트 폴더내에 작성하여 테스트
class Dump{
int value = 0;
void addValue() => value++;
}
void main(){
test('show value add 1', (){
final dump = Dump();
dump.addValue();
expect(dump.value, 1);
});
}
ref)
1. "An introduction to unit testing | Flutter", 23.12.19, https://docs.flutter.dev/cookbook/testing/unit/introduction