Domanda

Sto cercando di avvolgere la testa iniziando ad implementare i test unitari in un progetto C# che utilizza secchi AWS S3.

Nonostante lo esaminasse solo brevemente, capisco che quasi tutto ciò che è esterno al progetto deve essere deriso per "garantire" risultati prevedibili.

In breve, sto cercando di passare una classe statica (che è sia astratta che sigillata) come argomento che limita il parametro a un'interfaccia che ho definito (al momento è costituito solo da AWSClientFactory.CreateAmazonS3Client(string, string, RegionEndpoint).

Tuttavia, non riesco a capire come far passare questa classe per riferimento (AWSClientFactory), e attraverso una ricerca approfondita, non vedo alcun modo di farlo.

Dato che dovrò passare attraverso Cloud un altro provider (che imiterà l'API S3) attraverso questo stesso metodo, avrei pensato che questa sarebbe stata una soluzione accettabile, sia per questo che per il passaggio delle classi finte implementate attraverso l'interfaccia.

Quale sarebbe il modo migliore per implementarlo con lo stesso tipo di struttura, per cui i metodi identici sono chiamati da diverse classi statiche?

È stato utile?

Soluzione

Non puoi ottenere un'istanza di classe statica. Pertanto, non puoi ottenere un riferimento ad esso, perché non c'è nulla a cui ottenere riferimento. Ecco perché non dovresti abusare di lezioni statiche, se hai intenzione di scrivere test unitari in seguito.

Per ottenere ciò che desideri, puoi creare la tua interfaccia e creare alcune implementazioni di questa interfaccia. Una di questa implementazione si avvolgerà AWSClientFactory.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top