Question

Pendant que je cherchais cette réponse sur Google, je pensais aussi pouvoir la poser ici.

J'ai une classe qui encapsule un SDK. La classe accepte un objet ILoader et utilise l'objet ILoader pour créer un ISBAObject qui est converti en un objet ISmallBusinessInstance. J'essaie simplement de me moquer de ce comportement en utilisant Moq.

   [TestMethod]
    public void Test_Customer_GetByID()
    {
        var mock = new Mock<ILoader>();

        var sbainst = new Mock<ISbaObjects>();

        mock.Expect(x => x.GetSbaObjects("")).Returns(sbainst);


    }

L'erreur de compilation se lit comme suit: Erreur 1 La meilleure correspondance de méthode surchargée pour 'Moq.Language.IReturns.Returns (Microsoft.BusinessSolutions.SmallBusinessAccounting.Loader.ISbaObjects) "contient des arguments incorrects

Que se passe-t-il ici? Je m'attendais à ce que la maquette d’ISbaObjects puisse être renvoyée sans problème.

Était-ce utile?

La solution

Vous devez utiliser sbainst.Object, car sbinst n'est pas une instance d'ISbaObjects - c'est juste une partie fictive.

Autres conseils

Mis à jour, code correct

[TestMethod]
public void Test_Customer_GetByID()
{
    var mock = new Mock<ILoader>();

    var sbainst = new Mock<ISbaObjects>();

    mock.Expect(x => x.GetSbaObjects("")).Returns(sbainst.Object);


}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top