gpt4 book ai didi

java - 如何对客户端服务器代码进行单元测试

转载 作者:IT老高 更新时间:2023-10-28 20:35:42 24 4
gpt4 key购买 nike

我目前正在编写 Java 客户端服务器应用程序。所以我想实现两个库,一个用于客户端,一个用于服务器。客户端服务器通信有一个非常严格的协议(protocol),我不想用 JUnit 进行测试。

作为构建工具,我使用 Maven 和 Husdon 服务器进行持续集成。

实际上,我对如何测试这些客户端/服务器库没有任何好主意。

我有以下方法:

  1. 只需编写一个 Dummy Client 来测试服务器,编写一个 Dummy Server 来测试客户端。缺点:不幸的是,这会导致许多额外的工作。我不能 100% 确定客户端和服务器可以一起工作,因为我不确定测试是否完全相同。

  2. 编写一个单独的测试项目,同时测试客户端和服务器。
    缺点: 单元测试不属于它自己的项目,因此 Hudson 不会自动运行它们。在这些库之一中更改任何内容的每个人都必须手动运行测试以确保一切正确。我也不会收到任何代码覆盖率报告。

有没有更好的方法来测试这样的代码?也许测试一个 Maven 多模块项目,或者类似的东西。

我希望任何人都能为这个问题找到一个好的解决方案。

谢谢。

最佳答案

将所有代码视为“将输入转换为输出”:X -> [A] -> Y

X 是输入的数据,[A] 是转换器,Y 是输出。在你的情况下,你有这个设置:

[Client] -> X -> [Server] -> Y -> [Client]

所以单元测试是这样工作的:

  1. 您需要一个运行客户端代码的测试来生成 X。验证代码是否实际生成带有断言的 XX 应该是代码中的final static String

  2. 在第二次测试中使用常量 X 调用服务器代码,将其转换为 Y(另一个常量)。

  3. 第三个测试确保客户端代码可以解析输入Y

这样,您可以保持测试的独立性,同时仍然确保重要部分正常工作:组件之间的接口(interface)

关于java - 如何对客户端服务器代码进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3931246/

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