Tous invocation sur la maquette doit avoir un programme d'installation correspondante

J'ai un code existant, je veux de l'unité de test. J'ai créé un premier moq test, mais je suis l'exception suivante:

Moq.MockException:IConnection.SendRequest(CAD.De messagerie.Contrat.Serveur de configuration.GetDataVersionRequest)
invocation a échoué avec des simulations de comportement Strictes. Toutes les invocations sur le
maquette doit avoir un programme d'installation correspondante.

Important des morceaux de code:

Propriété de la classe:

Public Property Connection() As IConnection
    Get
        Return _connection
    End Get
    Set(ByVal value As IConnection)
        _connection = value
    End Set
End Property

La méthode qui doit être testé: (_connection) est en fait une classe qui crée une socket tcp et je veux, à se moquer de ces biens pour le SendRequest renvoie ce que je veux.

Public Function GetVersion(ByVal appID As Contract.ApplicationID) As Contract.DataVersion
    EnsureConnected()
    Dim req As GetDataVersionRequest = New GetDataVersionRequest(appID)

    Dim reply As CentralServiceReply = _connection.SendRequest(req) //code I want to mock
    Utils.Check.Ensure(TypeOf reply Is GetDataVersionReply, String.Format("Unexpected type: {0}, expected GetDataVersionReply!", reply.GetType()))

    Dim version As Contract.DataVersion = CType(reply, GetDataVersionReply).Version
    version.UpgradeOwners()
    If (Not version.IsSupported) Then
        Return Contract.DataVersion.UNSUPPORTED
    End If

    Return version
End Function

Méthode D'Essai:

[TestMethod]
public void TestMethod2()
{
    Contract.CentralServiceRequest req = new Contract.ConfigServer.GetDataVersionRequest(new ApplicationID("AMS", "QA"));

    DataVersion v = new DataVersion();
    v.AppVersion = "16";
    CentralServiceReply reply = new GetDataVersionReply(v);

    var ConnectionMock = new Mock<IConnection>(MockBehavior.Strict);
    ConnectionMock.Setup(f => f.SendRequest(req)).Returns(reply);

    var proxy = new ConfigServerProxy(new ApplicationID("AMS", "QA"), "ws23545", 8001);
    proxy.Connection = ConnectionMock.Object; //assign mock object

    DataVersion v2 = proxy.GetVersion(new ApplicationID("AMS", "QA"));
    Assert.AreEqual(v.AppVersion, v2.AppVersion);
}

Quand je debug de l'unité de test je vois que lors de la procuration.GetVersion est exécutée sur la ligne _connection.SendRequest nous obtenons l'erreur. Aussi, quand j'ai regarder la variable (_connection) dans la fenêtre watch je vois c'est le moq de l'objet. Je suppose donc que l'affectation de propriété s'est bien passé.

Quelqu'un de voir où je suis allé mal?

OriginalL'auteur msjonathan | 2012-08-16