enqueue/test
Test utilities for the Enqueue message queue ecosystem. Provides shared helpers and tooling used across Enqueue packages to simplify writing and maintaining tests for messaging components and integrations.
Installation:
composer require enqueue/test --dev
Add to composer.json under require-dev to ensure it's only used in testing environments.
First Use Case: Test a queue consumer or worker by mocking the message broker. Example:
use Enqueue\Test\Mock\MockConnectionFactory;
use Enqueue\Test\Mock\MockContext;
$connectionFactory = new MockConnectionFactory();
$context = new MockContext($connectionFactory);
// Use $context in your queue consumer tests
Where to Look First:
Replace real queue connections with mocks in tests:
// In your test setup
$connectionFactory = new MockConnectionFactory();
$context = new MockContext($connectionFactory);
// In your test
public function testQueueConsumer()
{
$producer = $context->createProducer();
$consumer = $context->createConsumer('test_queue');
// Assertions or interactions can be verified via mock methods
}
Verify message handling:
public function testConsumerHandlesMessage()
{
$consumer = $context->createConsumer('test_queue');
$message = new \Enqueue\Message\Message('test');
$consumer->setMessageHandler(function ($message) {
$this->assertEquals('test', $message->getBody());
});
$consumer->consume();
}
Use enqueue/laravel alongside enqueue/test:
// In Laravel test case
protected function getMockContext()
{
$connectionFactory = new MockConnectionFactory();
return new MockContext($connectionFactory);
}
$connectionFactory->reset();
enqueue/test to trace interactions:
$connectionFactory->setDebug(true);
$this->assertTrue($connectionFactory->isMessageProduced('test_queue'));
MockConnectionFactory or MockContext for domain-specific behavior.$connectionFactory->setMessageHandler(function ($message) {
// Custom logic
});
$connectionFactory->setExceptionOnProduce(true);
enqueue/laravel, this package has no config file. All setup is manual.TestCase or CreatesApplication.How can I help you explore Laravel packages today?