Ricerca…


Osservazioni

Moq è una libreria di derisione per .Net. Permette di simulare e verificare le interazioni con le dipendenze al fine di facilitare il collaudo delle unità.

Le note di rilascio per diverse versioni di Moq sono disponibili qui .

Installazione o configurazione

  1. Seleziona il progetto a cui vuoi aggiungere il riferimento a Moq.
  2. Apri Nuget per questo progetto.
  3. Seleziona "Sfoglia" piuttosto che digita "moq" nella casella di ricerca.
  4. Seleziona "Moq" e poi clicca su Installa.

inserisci la descrizione dell'immagine qui

Seguendo questi passaggi installerai il pacchetto Moq e aggiungerai un riferimento ad esso nei riferimenti di progetto selezionati. Dopo aver completato questi passaggi, è possibile utilizzare Moq nel progetto di test dell'unità semplicemente dichiarandolo nei file delle classi di test:

Using Moq;

I moq sono duplicati di prova

I mock sono intesi come raddoppia test, che consentono di convalidare le interazioni con i mock, non sono intesi a sostituire il sistema che stai testando. Gli esempi spesso dimostrano le caratteristiche di Moq come segue:

// Create the mock
var mock = new Mock<IMockTarget>();

// Configure the mock to do something
mock.SetupGet(x => x.PropertyToMock).Returns("FixedValue");

// Demonstrate that the configuration works
Assert.AreEqual("FixedValue", mock.Object.PropertyToMock);

// Verify that the mock was invoked
mock.VerifyGet(x => x.PropertyToMock);

Mentre questo esempio mostra i passaggi necessari per l'utilizzo della simulazione, è importante ricordare che in realtà non verifica nulla, a parte il fatto che la simulazione è stata configurata e utilizzata correttamente. Un test effettivo che fa uso di una simulazione fornirà il mock al sistema che deve essere testato. Per testare il seguente metodo:

public class ClassToTest
{
    public string GetPrefixedValue(IMockTarget provider)
    {
        return "Prefixed:" + provider.PropertyToMock;
    }
}

È possibile creare una simulazione dell'interfaccia dipendente:

public interface IMockTarget
{
    string PropertyToMock { get; }
}

Per creare un test che in realtà convalidi il comportamento del metodo GetPrefixedValue :

// Create and configure the mock to return a known value for the property
var mock = new Mock<IMockTarget>();
mock.SetupGet(x => x.PropertyToMock).Returns("FixedValue");

// Create an instance of the class to test
var sut = new ClassToTest();

// Invoke the method to test, supplying the mocked instance
var actualValue = sut.GetPrefixedValue(mock.Object);

// Validate that the calculated value is correct
Assert.AreEqual("Prefixed:FixedValue", actualValue);

// Depending on what your method does, the mock can then be interrogated to
// validate that the property getter was called.  In this instance, it's
// unnecessary since we're validating it via the calculated value.
mock.VerifyGet(x => x.PropertyToMock);


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow