Pregunta

Estoy tratando de envolver mi cabeza comenzando a implementar pruebas unitarias en un proyecto C# que utiliza los cubos AWS S3.

A pesar de que solo lo investiga brevemente, entiendo que casi cualquier cosa que sea externa al proyecto debe burlarse de los resultados predecibles de "garantizar".

En resumen, estoy tratando de pasar una clase estática (que es abstracta y sellada) como un argumento que restringe el parámetro a una interfaz que he definido (en este momento que consiste en AWSClientFactory.CreateAmazonS3Client(string, string, RegionEndpoint).

Sin embargo, no puedo entender cómo aprobar esta clase por referencia (AWSClientFactory), y a través de una extensa investigación, no veo ninguna forma de hacerlo.

Como voy a necesitar pasar por la nube, otro proveedor (que imitará la API S3) a través de este mismo método, hubiera pensado que esta habría sido una solución aceptable, tanto para esto como para aprobar clases simuladas implementadas a través de la interfaz.

¿Cuál sería la mejor manera de implementar esto con el mismo tipo de estructura, por la cual se llaman métodos idénticos de diferentes clases estáticas?

¿Fue útil?

Solución

No puede obtener una instancia de clase estática. Por lo tanto, no puede obtener una referencia a ello, porque no hay nada a quien obtener referencia. Es por eso que no debes usar mal las clases estáticas, si planeas escribir pruebas unitarias más tarde.

Para lograr lo que desea, puede hacer su propia interfaz y hacer algunas implementaciones de esta interfaz. Una de esta implementación se envolverá AWSClientFactory.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top