mock-udp

Node v0.8 compatible

Mock UDP

Node v0.8 compatible

Mock requests and write tests for sending data to a UDP server.

$ npm install mock-udp
var mockudp = require('mock-udp');  // When imported, Socket gets patched immediately 
 
// Create scope to capture UDP requests 
var scope = mockudp('localhost:1234');
 
var client = require('dgram').createSocket('udp4');
var message = new Buffer('hello world');
client.send(message, 0, message.length, 1234, 'localhost', function(errbytes) {
    scope.buffer; // scope.buffer is the buffer which would have been sent 
    scope.done();  // Will throw an Error *if* the scope wasn't used 
});

Intercept all requests going to localhost, port 1234, and redirect sent data into the scope returned. All other requests without a scope attached will throw an Error.

var scope = mockudp('localhost:1234');

After sending a request to localhost:1234, the buffer which was sent is available on the scope object:

scope.buffer

The scope can also be verified that it was even used.

scope.done();

scope.done() returns true if it has been used, but throws an exception if not, so it makes for easy testing.

By default, Socket.send gets patched when imported. To override this behavior, you can revert it:

var mockudp = require('mock-udp');
mockudp.revert();

After revert is called, Socket.send is in it's original state. This can be again reversed manually by calling intercept:

mockudp.intercept();