우리는 대규모 프로젝트에서 ArcObjects 코드를 비즈니스 로직과 분리하기 위해 상당히 잘 관리했습니다. 그것은 일반적으로 모의 프레임 워크를 사용하여 길을 얻는 것이 가능하더라도 모든 것을 모방하려고 시도하는 것이 아니라 일반적으로 갈 길입니다.
왜 스스로 모의해야한다고 생각하는지 스스로에게 물어보십시오. 일반적으로 추상화가 누락 되었기 때문입니다. 작은 책임을 생각하고 거대하고 못생긴 ArcObject 몬스터의 표면을 최소화하십시오. ArcObject 유형의 일부 측면이 어딘가에 필요하기 때문에 드래그하지 마십시오.
우리 프로젝트에서 하나의 구체적인 예를들 수 있습니다. 코드의 일부가 IMxDocument에 의존하는 것 같습니다. 유일한 이유는 활성보기를 새로 고쳐야했기 때문입니다. 그래서 우리는 대신 IViewRefresher 인터페이스를 만들고 그 작업 만했습니다. 모의하고 테스트하기 쉽습니다. 또한 코드 의 의도 를보다 명확하게하고 누군가가 IMxDocument를 사용하여 재미있는 작업을 시작하려는 유혹을 제거합니다. 많은 ArcObjects 코드로 동일한 연습을 수행 할 수 있습니다.
또한 피처 클래스에 대한 모든 액세스를 유형 안전 래퍼로 래핑하여 ArcObjects에서 비즈니스 코드를 보호하는 모의 코드를 다시 제공했습니다.
우리는 ArcObject의 지오메트리 유형을 사용하는 것에 대해서도 논의하지 않았지만, 현재 이러한 인터페이스를 코드에서 직접 사용할 수 있습니다. 그러나 인터페이스 지식 만 허용되며 모든 형상의 인스턴스화는 자체 형상 팩토리를 사용합니다.
요약하면, 조롱을 권장하지는 않지만 ArcObject와는 다른 추상화 수준에서 조롱을 권장합니다.