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 구문에 오류가있을 수 있습니다.
대신에 모카를 사용하는 것이 좋습니다. TJ의 Expresso의 진화입니다 (Expresso의 GitHub에서 : "Expresso의 후속 모델 인 Mocha를 꼭 확인하십시오."). 질문 자체에 관해서는 TCP 서버에 대한 호출을 테스트해야하지만 구현 자체는 TCP 호출과 별도로 테스트 대상이되어야한다고 생각합니다. – mna
전적으로 모카 사용에 동의합니다. 나는 모카를 좋아한다. –