Domanda

Mentre sto cercando su Google / leggendo questa risposta, ho pensato di chiedere anche qui.

Ho una classe che è un wrapper per un SDK. La classe accetta un oggetto ILoader e utilizza l'oggetto ILoader per creare un oggetto ISBAO che viene trasmesso in un oggetto ISmallBusinessInstance. Sto semplicemente cercando di deridere questo comportamento usando 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'errore del compilatore recita: Errore 1 La migliore corrispondenza del metodo sovraccaricato per "Moq.Language.IReturns.Returns (Microsoft.BusinessSolutions.SmallBusinessAccounting.Loader.ISbaObjects)" presenta alcuni argomenti non validi

Cosa sta succedendo qui? Mi aspettavo che il Mock di ISbaObjects potesse essere restituito senza problemi.

È stato utile?

Soluzione

Devi usare sbainst.Object, poiché sbinst non è un'istanza di ISbaObjects - è solo la parte finta.

Altri suggerimenti

Codice corretto e aggiornato

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

    var sbainst = new Mock<ISbaObjects>();

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


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