Acabo de comenzar a implementar pruebas unitarias (utilizando xUnit y Moq) en un proyecto mío ya establecido. El proyecto usa ampliamente la inyección de dependencia a través del contenedor de la unidad.Moq y accediendo a los parámetros llamados
Tengo dos servicios A y B. El servicio A es el que se está probando en este caso. El servicio A llama a B y le otorga un delegado a una función interna. Esta 'devolución de llamada' se usa para notificar a A cuando se recibe un mensaje que debe manejar.
por lo tanto una llamadas (donde b es una instancia de servicio B):
b.RegisterHandler(Guid id, Action<byte[]> messageHandler);
Con el fin de probar el servicio A, que necesito para ser capaz de llamar a messageHandler
, ya que esta es la única forma en que se acepta actualmente mensajes.
¿Esto se puede hacer utilizando Moq? es decir. ¿Puedo simular el servicio B, de modo que cuando se invoca RegisterHandler
, el valor de messageHandler
se transfiere a mi prueba?
¿O tengo que volver a diseñar esto? ¿Hay algún patrón de diseño que debería usar en este caso? ¿Alguien sabe de algún buen recurso en este tipo de diseño?