我目前正在为学校项目开发两个 Java 网络应用程序。一个通过 TCP,另一个通过 UDP。在这两种情况下,我都必须实现简单的自定义协议(protocol)。
尽管我非常努力地尝试,我找不到正确测试此类应用程序的方法,或者通过测试先行开发更好地开发。
如果我有一个客户端,并且我想要真正的测试而不是将所有东西都 stub ,我必须实现具有模拟行为的服务器,对于像这样的简单应用程序,这几乎是整个项目。我明白,当事情变得很大时,编写几行 Perl 脚本来测试它真的很有帮助。
现在我正在同时开发服务器和客户端,这样我至少可以手动测试,但这似乎不是一种干净的开发方式。唯一有帮助的是通过记录器建立隧道连接,这样我就可以看到所有通过的数据(使用 IDEA 的 TunneliJ 插件)。
使用自定义协议(protocol)对网络应用程序进行 TDD 的最佳方法是什么?我是否应该将所有内容 stub 并接受它?
最佳答案
将协议(protocol)与网络层分开。一旦您可以将自己的数据提供给它,而无需通过网络堆栈,测试协议(protocol)的逻辑将变得更加容易。即使您没有使用 Python,我也建议您查看 Twisted 的结构框架。这是一个很好的例子,说明如何对网络应用程序进行单元测试。
关于java - 如何使用自定义协议(protocol)测试网络应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681413/