【发布时间】:2017-06-22 21:51:53
【问题描述】:
我正在编写一个使用 WebSphere MQ 进行消息传递的应用程序。对于我的单元测试(流测试),我想验证我是否已将正确的消息放在响应队列中。 我试图弄清楚如何做到这一点。我的主要障碍是我认为在运行单元测试之前清除队列可能会很可怕,因为另一个应用程序可能会使用同一个队列。 我认为一个不错的解决方法是为我的单元测试创建一个新的队列管理器和队列,并在使用后将其删除。
所以我的问题是:是否可以使用 C# 创建队列管理器和队列?
【问题讨论】:
-
队列管理器和队列的创建是管理作业。无法使用用户定义的应用程序创建队列管理器。您必须使用 MQ 提供的命令
crtmqm <qmname>来创建队列管理器。假设您的应用程序有一个独占队列,您打算使用什么方法来验证是否已将正确的消息放入响应队列? -
基本上,在我的应用程序中,我不需要检查是否将正确的消息放入队列。它仅用于我的单元测试。到目前为止,我的计划是在单元测试之前清除队列,在测试之后从响应队列中取出所有消息,并使用 MQQueue.Get() 和 MQMessage.ReadString(MQMessage.MessageLength) 验证预期的消息是否在队列中并将其与预期值进行比较
标签: c# .net unit-testing queue ibm-mq