Pergunta

Estou tentando envolver a cabeça começando a implementar testes de unidade em um projeto C# que utiliza baldes AWS S3.

Apesar de realmente analisá -lo, entendo que quase tudo o que é externo ao projeto deve ser ridicularizado quanto a "garantir" resultados previsíveis.

Em resumo, estou tentando passar uma classe estática (que é abstrata e selada) como um argumento que restringe o parâmetro a uma interface que eu defini (no momento consistindo apenas em AWSClientFactory.CreateAmazonS3Client(string, string, RegionEndpoint).

No entanto, não consigo descobrir como passar essa classe por referência (AWSClientFactory), e através de uma extensa pesquisa, não vejo nenhuma maneira de fazê -lo.

Como vou precisar passar pela nuvem de outro provedor (que imitará a API S3) através desse mesmo método, eu pensaria que essa seria uma solução aceitável, para isso e as classes simuladas e passantes implementadas através da interface.

Qual seria a melhor maneira de implementar isso com o mesmo tipo de estrutura, em que os métodos idênticos são chamados de diferentes classes estáticas?

Foi útil?

Solução

Você não pode obter uma instância de classe estática. Portanto, você não pode obter uma referência a isso, porque não há nada para obter referência. É por isso que você não deve usar mal aulas estáticas, se planeja escrever testes de unidade posteriormente.

Para alcançar o que você deseja, você pode fazer sua própria interface e fazer algumas implementações dessa interface. Uma dessas implementação irá embrulhar AWSClientFactory.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top