我需要对Symfony 4中的a用户进行功能测试,但我很难找到方法。订阅服务器具有以下结构
/**
* Class ItemSubscriber
*/
class ItemSubscriber implements EventSubscriberInterface
{
/**
* @var CommandBus
*/
protected $commandBus;
/**
* Subscriber constructor.
*
* @param CommandBus $commandBus
*/
public function __construct(CommandBus $commandBus)
{
$this->commandBus = $commandBus;
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents()
{
return [
CommandFailedEvent::NAME => 'onCommandFailedEvent',
];
}
/**
* @param CommandFailedEvent $event
*
* @throws Exception
*/
public function onCommandFailedEvent(CommandFailedEvent $event)
{
$item = $event->getItem();
$this->processFailed($item);
}
/**
* Sends message
*
* @param array $item
*
* @throws Exception
*/
private function processFailed(array $item)
{
$this->commandBus->handle(new UpdateCommand($item));
}
}
订阅者的流正在接收内部事件,并通过命令总线通过 rabbit 将消息发送到另一个项目。
如何测试调度事件命令失败
是否执行了进程中的行失败(数组$item)
?
有人有关于在Symfony 4中测试事件和订阅者的最佳实践的文档吗?
如果您想测试正在调用的命令总线处理程序的过程,您可以通过模拟期望测试依赖方法调用。您在PHPUnit留档中有一些示例。
例如,您可能会看到这样的内容:
$commandBus = $this->getMockBuilder(CommandBus::class)->disableOriginalConstructor()->getMock();
$commandBus->expects($this->once())->method('handle');
// Create your System Under Test
$SUT = new CommandFailedSubscriber($commandBus);
// Create event
$item = $this->getMockBuilder(YourItem::class)->getMock();
$event = new CommandFailedEvent($item);
// Dispatch your event
$dispatcher = new EventDispatcher();
$dispatcher->addSubscriber($SUT);
$dispatcher->dispatch($event);
我希望这足以让您探索可能性并获得您的功能所需的覆盖范围。
祝你测试愉快!
Node.js应用程序可以使用composer-client.BusinessNetworkConnection.onAPI调用从业务网络订阅事件。事件在业务网络模型文件中定义,并由交易处理函数文件中的指定交易处理。有关发布事件的更多信息,请参阅发布事件。 在你开始之前 在应用程序可以订阅事件之前,你必须定义一些事件和发送它们的交易。还必须部署业务网络,并且必须具有可连接到该业务网络的连接配置文件
我部署服务器发送事件资源与泽西2.41/Java7/tomcat 7. 我得到的错误是 2013年12月16日凌晨4:04:40组织。阿帕奇。卡塔琳娜。果心StandardWrapperValve:Servlet。路径为[/trackapp]的上下文中servlet[ServletAdapter]的服务()引发异常[java.lang.UnsupportedOperationException:s
我正在开发一个web应用程序,我遵守REST API标准。我正在搜索REST API的最佳实践订阅和付款。 当新用户订阅“PRO计划”时,用户需要支付计划费用,这是一个交易。 对于升级、取消或更新计划,是否应设置put:和或其他endpoint?
来自第三次订阅的消息会发生什么情况,是否会在TTL之后发送到死信队列 有没有办法找出消息未被使用的订阅
我有一个使用ActiveMQ的JMS生产者/订阅者的简单Spring应用程序,配置如下: 我试过所有可能的解决办法,但没有一个奏效。我们非常感谢任何帮助
问题内容: 目前,我发现黄瓜测试套件按字母顺序运行功能文件。 请让我知道我是否可能缺少任何选项/配置。谢谢。 问题答案: 在黄瓜4.2.0中添加了cli选项,请参见changelog和本示例。