当前位置: 首页 > 面试题库 >

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

阙项禹
2023-03-14
问题内容

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

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

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

我得到以下方法:

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

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

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

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

谢谢。


问题答案:

因此,最终的解决方案是建立一个多模块项目,该项目具有一个单独的测试模块,其中包括服务器和客户端模块,在Husdon中运行良好。甚至在Eclipse
IDE中也更好。谢谢@亚伦的提示



 类似资料:
  • 我试图用Spock为套接字客户端和服务器编写单元测试。我应该如何在单元测试中设置服务器/客户机对,以便它能够工作? 通过在测试之外手动运行服务器类,我成功地测试了我的客户端类,但是当我试图在测试类内部初始化它时,所有的测试似乎要么挂起,要么得到一个拒绝的连接。 目前,我使用的只是Oracle的EchoServer和EchoClient代码的稍微修改版本。 客户端类: 服务器启动方法:

  • 问题内容: 我是Java和junit的新手。我有以下要测试的代码。如果您能提出有关测试它的最佳方法的想法,将不胜感激。 基本上,以下代码与从集群中选出领导者有关。领导者在共享缓存上持有锁,并且如果领导者以某种方式释放了对缓存的锁定,则领导者的服务将恢复并处置。 我如何确保领导者/线程仍保持对缓存的锁定,并且在执行第一个线程时另一个线程无法恢复其服务? 问题答案: 作为测试框架的替代方法(或使用JU

  • 问题内容: 我想问一下您首选的Java EE代码测试方法? 我发现只有三个项目,这些项目试图帮助在Java EE环境中编写单元测试: http://jakarta.apache.org/cactus/:上次发布时间:2009-01-18 http://www.junitee.org/:最新版本:2004-12-11 http://ejb3unit.sourceforge.net/:最新版本:200

  • 本文向大家介绍php简单socket服务器客户端代码实例,包括了php简单socket服务器客户端代码实例的使用技巧和注意事项,需要的朋友参考一下 本篇文章分享一个简单的socket示例,用php。实现一个接收输入字符串,处理并返回这个字符串到客户端的TCP服务。 产生一个 socket 服务端 提示:你应该使用你的命令提示符来运行上面这段代码。理由是因为这里将产生一个服务器,而不是一个Web页面

  • 我在go中对gRPC服务进行单元测试时遇到困难。 我看了一下测试gRPC服务,但它对我不起作用,不确定我做错了什么。 Add方法的gRPC服务实现: Add方法的单元测试: 项目目录结构 抛出一个错误,称为。 我对非常陌生,找不到解决方法。

  • 我编写了调用泽西岛客户端API的代码,而该API又调用了我无法控制的Web服务。我不希望我的单元测试调用实际的 Web 服务。 为调用Jersey客户端API的代码编写单元测试的最佳方法是什么?我应该使用Jersey服务器API编写JAX-RS web服务,然后使用Jersy测试框架进行单元测试吗?还是应该模拟Jersey web服务调用?我有权访问JMock。还是我应该尝试另一种方法? 在我的研