대부분의 응용 프로그램에는 디스크에서 다양한 설정을 읽는 단일 톤 또는 정적 "구성"개체가 있습니다. 거의 모든 클래스가 다양한 목적으로 사용합니다. 기본적으로 이름 / 값 쌍의 해시 테이블 일뿐입니다. 읽기 전용이므로 전 세계 국가가 너무 많다는 사실에 너무 걱정하지 않았습니다. 그러나 이제 단위 테스트를 시작하면서 문제가되기 시작했습니다.
한 가지 문제점은 일반적으로 실행하는 동일한 구성으로 테스트하고 싶지 않다는 것입니다. 이에 대한 몇 가지 해결책이 있습니다.
- 테스트에만 사용되는 설정 개체에 구성 개체를 지정하여 다른 설정을 전달할 수 있습니다.
- 단일 구성 개체를 계속 사용하되 단일 개체에서 필요한 모든 곳을 통과하는 인스턴스로 변경하십시오. 그런 다음 응용 프로그램에서 한 번, 테스트에서 다른 설정으로 한 번 구성 할 수 있습니다.
그러나 어느 쪽이든, 여전히 두 번째 문제가 남아 있습니다. 거의 모든 클래스가 구성 객체를 사용할 수 있습니다. 따라서 테스트에서 테스트 할 클래스의 구성뿐만 아니라 모든 종속 항목도 설정해야합니다. 이것은 테스트 코드를 추악하게 만들 수 있습니다.
이런 종류의 구성 객체가 나쁜 생각이라는 결론에 도달하기 시작했습니다. 어떻게 생각해? 어떤 대안이 있습니까? 어디서나 구성을 사용하는 응용 프로그램을 리팩토링하려면 어떻게해야합니까?