Node.js делает это действительно легко.Вы можете создать свой сервер прямо в своем методе тестирования и создать клиент для подключения в этом методе тестирования.Он получится очень чистым.
У вашего клиента / сервера будет какой-то контракт на обмен сообщениями.Итак, для TDD вы начнете с каждого сообщения / набора данных и т. Д. И напишите для этого тесты.Мне нравится, когда сервер инкапсулирует TCP-сервер, чтобы он мог выполнять пользовательскую логику.
Поэтому у вас может быть что-то вроде этого:
Test1:
describe('MyServer', function(){
it('should respond with an acknowledgment of receiving my move command', function(done){
var server = new MyServer();
server.listen(9000);
var json = '{"player": "1", "tile": "3"}' //player 1 puts an 'X' in tile 3
client = net.connect(9000, function(){
client.write(json);
});
client.on('data', function(data){
//** your tests here to validate YOUR CUSTOM server response **
//example assuming your server sends JSON
serverResponse = JSON.parse(data.toString());
assert(serverResponse.tilesRemainingCount, 5); //completely custom
server.close();
done();
});
});
}
Делает ли этопомочь вообще?Вот как я это делал, и это прекрасно работает.Дайте мне знать, если что-то не понятно, и я попытаюсь это прояснить.
Кроме того, я разработчик CoffeeScript, поэтому, возможно, я допустил ошибку с синтаксисом JS.