gpt4 book ai didi

testing - 使用 Node.js TCP 服务器进行测试驱动开发?

转载 作者:可可西里 更新时间:2023-11-01 02:34:05 25 4
gpt4 key购买 nike

我正在使用 Node.JS 编写一个简单的 TCP 服务器,以便在我开始一个更大的项目之前了解更多关于一些特定的事情。我希望在此过程中了解有关测试驱动开发、用户身份验证和加密的更多信息。为了好玩,我正在实现一个多人井字游戏,其中包含用户帐户、统计信息和随机游戏配对。

无论如何。

我的问题是,我已经为应用程序的某些部分设置了测试,但现在是编写 TCP 部分的时候了。我将 Expresso 与 Should.js 结合使用,效果很好。我的问题是我究竟应该如何测试 TCP 服务器?我是否反复提出请求并确保我得到了我想要的东西?还是我应该以某种方式编写服务器,使其无需首先发出请求即可进行测试? (通过抽象)

我真的很好奇。预先感谢您的见解!

最佳答案

Node.js 让这一切变得非常简单。您可以直接在测试方法中创建服务器,并创建一个客户端以在该测试方法中进行连接。结果会很干净。

您的客户端/服务器通信将具有某种消息传递/通信契约(Contract)。所以,为了 TDD 这个东西,你将从每个消息/数据集等开始,并为此编写测试。我喜欢让 Server 封装一个 TCP 服务器,以便它可以执行自定义逻辑。

所以你可能有这样的东西:

测试 1:

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 语法上犯了错误。

关于testing - 使用 Node.js TCP 服务器进行测试驱动开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9254918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com