node package manager


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

Basic Usage

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(err, bytes) {
    scope.buffer; // scope.buffer is the buffer which would have been sent 
    scope.done();  // Will throw an Error *if* the scope wasn't used 

Create a Mocked scope

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:


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


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

Patching Socket.send

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

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

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