Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Java测试web服务器?_Java_Unit Testing_Testing_Tdd_Webserver - Fatal编程技术网

如何用Java测试web服务器?

如何用Java测试web服务器?,java,unit-testing,testing,tdd,webserver,Java,Unit Testing,Testing,Tdd,Webserver,我基本上是通过构建客户机和服务器(不一定是HTTP服务器)来练习Java套接字编程。简言之,客户端通过套接字向服务器发送请求,服务器将请求添加到任务队列中。线程池最初有一定数量的线程,每个空闲线程分配给任务队列中的一个可运行任务。我的web服务器还有一个简单的存储器,用于从磁盘存储和检索文件中的数据。在这个项目中,我必须处理几个并发问题 基本上,我必须构建客户端、服务器、线程池、处理程序和存储。然而,我希望以一种良好的系统方式进行彻底的测试(单元测试、集成测试等)。我没有太多的测试经验,所以我正

我基本上是通过构建客户机和服务器(不一定是HTTP服务器)来练习Java套接字编程。简言之,客户端通过套接字向服务器发送请求,服务器将请求添加到任务队列中。线程池最初有一定数量的线程,每个空闲线程分配给任务队列中的一个可运行任务。我的web服务器还有一个简单的存储器,用于从磁盘存储和检索文件中的数据。在这个项目中,我必须处理几个并发问题

基本上,我必须构建客户端、服务器、线程池、处理程序和存储。然而,我希望以一种良好的系统方式进行彻底的测试(单元测试、集成测试等)。我没有太多的测试经验,所以我正在寻找指针、方法、框架或教程。(我用蚂蚁自动化构建,并首先考虑JUnit和EasyMoCK进行测试)


在测试之前,我会先编写一些粗略的、现成的prototpye代码。只是想看看它的工作情况,并对我将要使用的API有一个感觉

然后介绍一些使用JUnit的单元测试(还有其他的框架,但是JUnit无处不在,您会发现很多教程可以帮助您入门)

如果您的对象需要与其他对象交互以完成其任务,那么使用mock(EasyMock或其他任何东西)来提供交互-这可能会导致一些重新分解

一旦你满意了,你就可以开始测试你的对象是如何交互的,你可以编写新的(集成)测试,用真实的东西代替模拟。更大的交互导致更大的复杂性

一些需要记住的事情

  • 琐碎的方法不值得测试(例如,简单的访问器)
  • 100%的覆盖率是浪费时间
  • 有测试总比没有好
  • 单元测试比集成测试更容易实现
  • 并非所有的测试都是功能性的
  • 测试多线程应用程序很困难
有一本关于谷歌如何进行测试的书。基本上,在某些东西看起来可行之前,他们不会编写测试。他们有工程师就如何构造测试代码提供建议。重点是:

  • 可运行代码是目标
  • 测试增加了这一目标,但并不能取代它
  • 编写可以测试的代码是一项习得的技能