Pergunta

Enquanto eu estou pesquisando / leitura para esta resposta eu pensei que eu também perguntar aqui.

Eu tenho uma classe que é um wrapper para um SDK. A classe aceita um objeto ILoader e usa o objeto ILoader para criar um ISBAObject que é moldada em um objeto ISmallBusinessInstance. Estou simplesmente tentando zombar este 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);


    }

O erro compilador lê: Erro 1 O melhor correspondência método sobrecarregado para 'Moq.Language.IReturns.Returns (Microsoft.BusinessSolutions.SmallBusinessAccounting.Loader.ISbaObjects)' tem alguns argumentos inválidos

O que está acontecendo aqui? Eu esperava que o Mock de ISbaObjects para ser capaz de ser devolvidos sem um problema.

Foi útil?

Solução

Você precisa usar sbainst.Object, como sbinst não é uma instância de ISbaObjects - é apenas a parte simulada

.

Outras dicas

Atualizado, código correto

[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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top