최근 특수 형식의 파일에서 데이터베이스로 데이터를 가져올 수있는 간단한 유틸리티를 만드는 작업이 있습니다. 몇 가지 클래스 (프로그램 클래스는 비즈니스 로직 클래스와 함께 작동하며, 비즈니스 로직 클래스는 데이터 액세스 클래스로 작동 함)로 콘솔 애플리케이션을 구현했습니다. 모든 것은 정상적으로 작동하지만, 지금은 단위 테스트와 리팩토링 애플리케이션을 만드는 것에 대해 생각하고 있습니다. (이전에 실제 단위 테스트를 작성하지 않았고 오랜 시간 전에 통합 테스트를 한 번도하지 않았기 때문에이 애플리케이션은 실전을위한 완벽한 분야라고 생각합니다) .데이터 액세스, 유닛 테스트, 종속성 삽입
그래서 여기에 문제가 있습니다. 데이터 액세스 클래스가 정적으로 만들어졌으며,이를 조롱하거나 실제 단위 테스트를 만들 수 없습니다. 이 문제를 해결하려면 인터페이스를 만들고 데이터 액세스 클래스에서 구현해야합니다. 또한 해당 인터페이스 형식의 매개 변수를 받아들이는 비즈니스 논리 클래스에 생성자를 추가해야합니다. 그래서 이것은 응용 프로그램 Main() 메소드에서 데이터 액세스 클래스를 작성하게 될 것이고 어떤 것이 가장 좋은 방법이 아니라는 것을 알려줍니다 (엔트리 포인트가 일부 데이터 액세스에 대해 알아야합니다.) 체인이 훨씬 길거나 몇 개의 사슬이 있어야합니까?). 몇 가지 IoC 컨테이너를 사용할 수는 있지만 컨테이너를 사용하는 것은 너무 간단한 응용 프로그램이라고 생각합니다.
감사합니다.
+1 : 좋은 답변입니다! 나는 특히 "벅이 멈추는 곳"을 좋아한다.DI 컨테이너에 대한 좋은 의견도 있습니다! – TrueWill
@ 제프 - 고마워요, 한번 시도해 보겠습니다. 내 비관적 인 존재가 몇 가지 숨겨진 함정이 있어야한다고 말하지만 : – Dev
@Dev : 회의론은 경건의 옆에있다! ;) –