繁体   English   中英

单元测试rabbitMQ c#起订量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM