을 무시하는 나는 다음과 같은 인터페이스와 클래스가 :어떻게 객체를 구성하고 그 구성
public interface ILoggingService { ... }
public class LoggingService {
public LoggingService(ILoggingRepository loggingRepository) { ... }
...
}
public interface ILoggingRepository { ... }
public class DatabaseLoggingRepository {
public DatabaseLoggingRepository(string ConnectionString) { ... }
...
}
public class FileLoggingRepository {
public FileLoggingRepository(string LogFilePath) { ... }
...
}
내가 유니티 IOC의 프레임 워크를 이용할 수 있도록 소프트웨어를 리팩토링하고있어에 특정 구성을 전달하는 방법을 찾고 있어요 각 ILoggingRepository 구현.
필자는 DatabaseLoggingRepository 및 FileLoggingRepository의 생성자를 매개 변수가없는 것으로 변경하고 일부 구성 파일로 구성하는 것이 가장 좋은 방법이라고 생각합니다. 그러나 수락 테스트로 인해 테스트를 실행하는 동안 이러한 설정을 무시할 수있는 쉬운 방법이 필요합니다.
맞습니다. 올바른 트랙에 있고 어떤 설정 파일을 사용해야합니까? 다른 방법도 환영합니다.
처음 두 생각은 다음과 같습니다. 디버그 및 릴리스 빌드에 대한 별도의 구성 파일이 있어야합니다. 비. 전처리 지시어를 사용하여 사용할 구성을 결정하십시오 :'#if DEBUG''// 디버그 설정 사용'# else''// 공식 설정'#endif' 사용 –
이것은 ** 가까이 있지 않습니다 ** 적절한 IoC 솔루션. 그 밖의 것이 없다면 디버그 또는 릴리스 구성에서 실행 중인지 여부에 관계없이 단위 테스트를 성공적으로 수행하고 싶습니다. –
불행히도 동일한 테스트 픽스처를 실행하는 동안이 두 가지 설정이 필요합니다. 첫 번째 테스트에서는 올바른 ConnectionString을 사용하여 동작을 테스트하고 잘못된 ConnectionString을 사용하여 다음 테스트를 실행합니다. –