Domanda

Sono un appassionato utente del Moqautomocker StructureMap, a volte, tuttavia, ci imbattiamo in un nostro "vecchio amico". Assumi un "validatore" di classe

public class Validator
{
   private string _connectionString;
   private IEventMachine _eventMachine;

   public Validator(string connectionString, IEventMachine eventMachine)
   {
      _connectionString = connectionString;
      _eventMachine = eventMachine;
   }
} 

La classe sopra non ha importanza, in effetti, probabilmente solleverà alcune sopracciglia, lo sto solo facendo per questo post, poiché non potrei pensare a un esempio migliore dalla punta del naso. Il punto è che contiene un mix di dati primitivi ( connessioni) e interfacce (Eventmachine) - Durante i test unitari, in genere ho impostato le mie aspettative, come ad esempio:

[TestMethod]
public void Validate_WhenCalled_PublishesEnterEvent()
{
    // Arrange
    var Instance = new MoqAutoMocker<Validator>();
    var eventMachineMock = Mock.Get(AutoMock.Get<IEventMachine>());

    // Act
    Instance.Validate();

    // Assert
    eventMachineMock.Verify(m => m.Publish( It.IsAny<string>(), Times.Once());        
}

Quindi, la domanda è: quanto sopra non funzionerà, perché Moqautomocker non riesce ad accettare l'argomento connessionstring, in quanto non riesce a trovare un'interfaccia per esso (o qualsiasi altro primitivo per quella materia). La mia domanda è semplicemente: c'è un modo per dire a Moqautomocker quale dovrebbe essere questo valore?

In anticipo, grazie per la lettura.

È stato utile?

Soluzione

No, non credo che ci sia un modo: è una limitazione dell'automocker.

Tendiamo a evitare i parametri del costruttore primitivo a favore degli oggetti delle impostazioni (vedi Come gestiamo la configurazione dell'applicazione)

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