编写网络相关类的单元测试

Ham*_*aya 3 java networking junit unit-testing

我有一个负责网络通信的课程.我想对它进行单元测试.

这是我为了为它编写测试而陷入困境的地方我必须实现与之通信的服务器,但这又需要自己的测试.

你如何为这样的课程编写测试?

tva*_*son 6

除非您正在编写低级别的驱动程序,否则您的班级无疑会依赖其他类来进行实际通信.在那种情况下,如果它们不容易被模拟,我会使用依赖注入来提供它们周围的类或包装器.在您的测试中,您将提供您依赖的类的模拟版本(如果您不能模拟实际的类,则提供包装器).验证您提供的mocks上的方法是否使用正确的参数调用了正确的方法.确保你有足够的单元测试来满足自己,你已经涵盖了真实依赖项的全部行为.这足以进行单元测试.

您还需要一些集成测试.不幸的是,最简单的方法是开发一个完整的模拟服务器进行通信.请注意,您的模拟服务器只需要实现接口 - 而不是另一端的实际代码.提供一些额外的方法,允许您为集成测试设置服务器,以便发生模拟服务器的预期行为.