Pregunta

Mientras busco en Google / leo esta respuesta, pensé que también preguntaría aquí.

Tengo una clase que es un contenedor para un SDK. La clase acepta un objeto ILoader y usa el objeto ILoader para crear un objeto ISBAObject que se convierte en un objeto ISmallBusinessInstance. Simplemente estoy tratando de burlarme de este comportamiento 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);


    }

El error del compilador dice: Error 1 La mejor coincidencia del método sobrecargado para 'Moq.Language.IReturns.Returns (Microsoft.BusinessSolutions.SmallBusinessAccounting.Loader.ISbaObjects)' tiene algunos argumentos no válidos

¿Qué está pasando aquí? Esperaba que el Mock of ISbaObjects se pudiera devolver sin problemas.

¿Fue útil?

Solución

Necesitas usar sbainst.Object, ya que sbinst no es una instancia de ISbaObjects, es solo la parte simulada.

Otros consejos

Código actualizado y correcto

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

    var sbainst = new Mock<ISbaObjects>();

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


}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top