Moq Einstellung Rückgabewert der Methode

Habe ich die unten Klasse, und ich versuche, die Methode zu testen AddRecordToQueue.

Ich bin mit Moq, zu verhöhnen, das Ergebnis der die AddToQueue Methode innerhalb der AddRecordToQueue Methode.

Den AddToQueue-Methode gibt einen booleschen Wert zurück, so dass ich versucht bin, zu verspotten, das Ergebnis mit dem wahren Wert

public class Test
{
    private readonly IRabbitMqConnection rabbitMqConnection;

    public Test(IRabbitMqConnection rabbitMqConnection)
    {
        this.rabbitMqConnection = rabbitMqConnection;

    }

    public bool AddRecordToQueue(string messageExchange, object data)
    {
        var jsonified = JsonConvert.SerializeObject(data);
        var customerBuffer = Encoding.UTF8.GetBytes(jsonified);
        var result = this.rabbitMqConnection.AddToQueue(customerBuffer, messageExchange);
        return result;
    }
}

Meine test-Klasse sieht aus wie die unten.

[TestClass]
public class TestCon
{
    [TestMethod]
    public void MockTest()
    {
        Moq.Mock<IRabbitMqConnection> rabbitConection = new Moq.Mock<IRabbitMqConnection>();

        var draftContactsManager = new Test(rabbitConection.Object);

        rabbitConection.Setup(e => e.AddToQueue(null, string.Empty)).Returns((bool res) => true);

        var result = draftContactsManager.AddRecordToQueue("someExchange", null);

        Assert.IsTrue(result);
    }
}

Ich kann nicht scheinen, um die moq Ergebnis als zutreffend. Kann mir jemand raten, was ich bin fehlt

Dank

Nicht auf eine Maschine zum testen, aber es gibt zwei Dinge, die ich hier sehe. 1. Sollten Sie Setup bevor Sie einen Verweis auf die .Object; 2. In Setup legen Sie die Argumente auf null und leer ist, versuchen Sie es mit Setup(e => e.AddToQueue(It.IsAny(), Is.IsAny())).Returns(true))
Tatsächlich, Sie nicht tun, Setup, bevor man das Objekt

InformationsquelleAutor simon1230756 | 2015-09-17

Schreibe einen Kommentar