Ho la classe seguente e sto provando a testare il metodo AddRecordToQueue.Valore restituito metodo impostazione Moq
Sto usando Moq per deridere il risultato del metodo AddToQueue all'interno del metodo AddRecordToQueue.
Il metodo AddToQueue restituisce un valore booleano, quindi sto cercando di prendere in giro il risultato con un valore vero
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;
}
}
mia classe di test si presenta come il seguente.
[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);
}
}
Non riesco a impostare il risultato moq come vero. Può chiunque raccomandare che cosa manco
grazie
Non a una macchina per testare, ma ci sono due cose che vedo qui. 1. Dovresti 'Setup' prima di ottenere un riferimento a' .Object'; 2. In 'Setup', imposti gli argomenti a null e svuota, prova a usare' Setup (e => e.AddToQueue (It.IsAny(), Is.IsAny())). Returns (true)) ' – Eris