Frage

Ich versuche, meinen Kopf zu wickeln, um Unit -Tests in einem C# -Projekt zu implementieren, bei dem AWS S3 -Eimer verwendet werden.

Obwohl ich es nur kurz untersucht habe, verstehe ich, dass fast alles, was außerhalb des Projekts ist, verspottet werden muss, um vorhersehbare Ergebnisse zu "garantieren".

Kurz gesagt, ich versuche, eine statische Klasse (die sowohl abstrakt als auch versiegelt und versiegelt ist) als Argument zu bestehen AWSClientFactory.CreateAmazonS3Client(string, string, RegionEndpoint).

Ich kann jedoch nicht herausfinden, wie ich diese Klasse mit Referenz übergeben kann (AWSClientFactory), und durch umfangreiche Forschung sehe ich keine Möglichkeit, dies zu tun.

Da ich einen anderen Anbieter (der die S3 -API nachahmt) durch dieselbe Methode durch die Cloud bestehen muss, hätte ich gedacht, dass dies eine akzeptable Lösung gewesen wäre, sowohl für diese als auch für die Übergabe von Scheinklassen, die über die Schnittstelle implementiert wurden.

Was wäre der beste Weg, dies mit der gleichen Struktur zu implementieren, wobei identische Methoden aus verschiedenen statischen Klassen aufgerufen werden?

War es hilfreich?

Lösung

Sie können keine Instanz statischer Klasse erhalten. Daher kann man keinen Hinweis darauf bekommen, weil es nichts gibt, auf das man sich verweisen kann. Deshalb sollten Sie statische Klassen nicht missbrauchen, wenn Sie später Einheitstests schreiben möchten.

Um das zu erreichen, was Sie wollen, können Sie Ihre eigene Oberfläche erstellen und einige Implementierungen dieser Schnittstelle erstellen. Eine dieser Implementierung wird einwickeln AWSClientFactory.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top