[英]unit test rabbitMQ c# Moq
我正在尝试使用 Moq nuget 包对我的 RabbitMQ 交换和队列进行单元测试。 但无论我如何尝试以及使用谷歌多少,我都无法理解我应该如何模拟 rabbitMQ 对象。 任何对单元测试非常陌生的人的指针,模型???
我曾尝试使用 nuget 包 RabbitMQ.Fakes 像这样:
[TestMethod]
public void testconnectionnotnull()
{
FakeConnectionFactory factory = new FakeConnectionFactory();
IConnection connection = factory.CreateConnection();
NUnit.Framework.Assert.That(connection.IsOpen);
NUnit.Framework.Assert.That(factory.Connection,
NUnit.Framework.Assert.AreSame(connection));
}
但是当我创建IConnection
,出现以下错误:
System.TypeLoadException: 来自程序集“RabbitMQ.Fakes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”的“RabbitMQ.Fakes.FakeModel”类型的“方法”CreateBasicPublishBatch“未实现。”
我也尝试过实例化一个标准的模拟对象,但我找不到正确的方法并且无法使用它。
[TestMethod]
public void TestFactoryNotNull()
{
Mock<Rabbit_Recieve> mock = new Mock<Rabbit_Recieve>();
}
测试 RabbitMQ 代码的最简单方法是为您的使用者编写独立的单元测试。
也就是说,您的消费者本质上应该只是一个接收消息的函数。 因此,您的单元测试应该只创建一个模拟兔子消息,然后使用该消息调用消费者,然后检查消费者是否按照您的预期执行。 换句话说,消费者应该与 Rabbit 代码解耦。
你真的不应该测试兔子连接等,因为那是兔子库的一部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.