我基本上是通过构建客户端和服务器(不一定是HTTP服务器)来练习Java套接字编程。简而言之,客户端通过套接字向服务器发送请求,服务器将请求添加到任务队列。线程池最初具有一定数量的线程,每个空闲线程分配给任务队列中的一个可运行任务。我的Web服务器还有一个简单的存储器,用于存储和检索磁盘文件中的数据。在这个项目中,我必须处理几个并发问题。
基本上,我必须构建客户端,服务器,线程池,处理程序,存储。但是,我想以一种很好的系统方式进行彻底的测试(单元测试,集成测试等)。我没有太多的测试经验,所以我正在寻找指针,方法,框架或教程。 (我使用Ant来自动构建,最初考虑使用JUnit和EasyMock进行测试)
答案 0 :(得分:0)
在测试之前,我首先编写一些粗略的,准备好的prototpye代码。只是为了看到它的工作,并了解我将使用的API。
然后用JUnit介绍一些单元测试(还有其他框架,但JUnit无处不在,你会找到很多教程来帮助你入门)。
如果你的对象需要与其他一些对象交互以完成它的任务,那么使用模拟(EasyMock或其他)来提供交互 - 这可能会导致一些重新分解。
一旦你开心,你就可以开始考虑测试你的对象如何交互,你可以编写新的(集成)测试,用真实的东西取代Mocks。更大的互动会带来更大的复杂性。
要记住的一些事情
有一本关于Google如何进行测试的书。基本上他们不会在看起来可行之前编写测试。他们有工程师就如何构建测试代码提出建议。重点是: