gpt4 book ai didi

java - 我需要测试 void、任何 GUI 处理程序或网络操作方法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 07:00:49 25 4
gpt4 key购买 nike

我目前正在开发 Java 桌面客户端。我的应用程序是基于socket的,有很多基于网络操作的方法。我需要测试这种方法吗?我该如何测试它?目前我设置了一个套接字服务器仅用于测试。但这样我就必须在测试之前始终运行套接字服务器。

还有一个问题,是否需要测试GUI操作相关的方法,如何测试? JUnit可以模拟GUI操作吗?这些方法通常是void方法。有什么方法可以测试 void 方法吗?

最佳答案

这应该是两个不同的问题。我只讨论第一部分:

如果您关心您的程序是否真正有效,那么是的,您绝对应该以某种方式测试它。如果您找不到更好的方法来做到这一点,那么可以使用手动测试。是的,您在测试时需要运行服务器。但不测试实际上只是意味着您的用户正在为您“测试”它。当他们发现错误时,修复它们会比您在开发环境中运行时自己发现错误更困难。

像 JUnit 这样的工具很有用,但如果它们不能满足您的要求,您就没有必要使用它们来自动化测试。您可以轻松编写自己的测试脚本,该脚本启动服务器的实例,然后通过一系列操作驱动客户端代码。如果其中一项检查失败,只需抛出异常并使测试脚本崩溃。

既然您提到了 JUnit,我猜您正在使用 Java 工作。如果您决定编写像我刚刚描述的那样的测试脚本,请记住您可以使用任何 JVM 兼容的语言来执行此操作。

如果您发现与网络相关的集成测试太慢而无法始终运行它们,那么您不必这样做。只需保留该测试脚本,并在任何可能影响网络相关功能的更改时运行它。或者至少在向用户发布新版本的程序之前运行它。

根据我的经验,通信和网络是难以发现的错误的丰富来源。有很多极端情况。如果客户端在请求过程中突然断开连接,会发生什么情况?如果客户太多怎么办?如果消息在传输过程中以某种方式损坏怎么办?根据您对可靠性的要求有多严格,您可能需要进行大量压力测试。

关于java - 我需要测试 void、任何 GUI 处理程序或网络操作方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22130701/

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