Tôi có lớp bên dưới và tôi đang cố gắng kiểm tra phương thức AddRecordToQueue.Giá trị trả về phương thức cài đặt Moq
Tôi đang sử dụng Moq để mô phỏng kết quả của phương thức AddToQueue trong phương thức AddRecordToQueue.
Phương pháp AddToQueue trả về một boolean, vì vậy tôi đang cố gắng để thử kết quả với một giá trị đích thực
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;
}
}
lớp thử nghiệm của tôi trông giống như dưới đây.
[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);
}
}
Tôi dường như không thể đặt kết quả moq là đúng. bất cứ ai có thể tư vấn những gì tôi đang thiếu
nhờ
Không tại một máy để kiểm tra, nhưng có hai điều tôi thấy ở đây. 1. Bạn nên 'Setup' trước khi bạn nhận được một tham chiếu đến' .Object'; 2. Trong 'Setup', bạn đặt các đối số thành null và rỗng, thử sử dụng' Setup (e => e.AddToQueue (It.IsAny(), Is.IsAny())). Returns (true)) ' – Eris