Net::DBus::Test::MockObject(3pm) | User Contributed Perl Documentation | Net::DBus::Test::MockObject(3pm) |
Net::DBus::Test::MockObject - Fake an object from the bus for unit testing
use Net::DBus; use Net::DBus::Test::MockObject; my $bus = Net::DBus->test # Lets fake presence of HAL... # First we need to define the service my $service = $bus->export_service("org.freedesktop.Hal"); # Then create a mock object my $object = Net::DBus::Test::MockObject->new($service, "/org/freedesktop/Hal/Manager"); # Fake the 'GetAllDevices' method $object->seed_action("org.freedesktop.Hal.Manager", "GetAllDevices", reply => { return => [ "/org/freedesktop/Hal/devices/computer_i8042_Aux_Port", "/org/freedesktop/Hal/devices/computer_i8042_Aux_Port_logicaldev_input", "/org/freedesktop/Hal/devices/computer_i8042_Kbd_Port", "/org/freedesktop/Hal/devices/computer_i8042_Kbd_Port_logicaldev_input" ], }); # Now can test any class which calls out to 'GetAllDevices' in HAL ....test stuff....
This provides an alternate for Net::DBus::Object to enable bus objects to be quickly mocked up, thus facilitating creation of unit tests for services which may need to call out to objects provided by 3rd party services on the bus. It is typically used as a companion to the Net::DBus::MockBus object, to enable complex services to be tested without actually starting a real bus.
!!!!! WARNING !!!
This object & its APIs should be considered very experimental at this point in time, and no guarantees about future API compatibility are provided what-so-ever. Comments & suggestions on how to evolve this framework are, however, welcome & encouraged.
It doesn't completely replicate the API of Net::DBus::Binding::Object, merely enough to make the high level bindings work in a test scenario.
Daniel P. Berrange
Copyright (C) 2004-2009 Daniel P. Berrange
Net::DBus, Net::DBus::Object, Net::DBus::Test::MockConnection, <http://www.mockobjects.com/Faq.html>
2020-11-09 | perl v5.32.0 |