문제

AWS S3 버킷을 사용하는 C# 프로젝트에서 단위 테스트를 시작하기 시작하는 데 주위를 감싸려고합니다.

실제로 간단히 조사해도 프로젝트 외부에있는 거의 모든 것이 "예측 가능한 결과를 보증하기"에 따라 조롱해야한다는 것을 이해합니다.

요컨대, 나는 정적 클래스 (추상적이고 봉인 된)를 전달하려고 노력하고 있습니다. AWSClientFactory.CreateAmazonS3Client(string, string, RegionEndpoint).

그러나이 수업을 참조로 통과시키는 방법을 알 수 없습니다 (AWSClientFactory), 그리고 광범위한 연구를 통해 나는 그렇게하는 방법을 보지 못합니다.

동일한 방법을 통해 다른 제공 업체 (S3 API를 모방 할 것임)를 클라우드를 통과해야하므로, 이것이 인터페이스를 통해 구현 된이 모의 클래스와 통과 된 모의 클래스에 대해 허용되는 솔루션이었을 것이라고 생각했을 것입니다.

다른 정적 클래스에서 동일한 방법이 호출되는 동일한 종류의 구조로 이것을 구현하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

정적 클래스 인스턴스를 얻을 수 없습니다. 따라서 참조 할 것이 없기 때문에 참조를 얻을 수 없습니다. 그렇기 때문에 나중에 단위 테스트를 작성하려는 경우 정적 클래스를 오용해서는 안됩니다.

원하는 것을 달성하기 위해 자신의 인터페이스를 만들고이 인터페이스를 구현할 수 있습니다. 이 구현 중 하나가 랩됩니다 AWSClientFactory.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top