我设计了实现一些服务器协议的Java类。例如,它具有getProtocolVersion()
方法,该方法返回最新的协议版本。此类的对象通过InputStream
和OutputStream
实现连接到服务器。
我对每个服务器命令都有一个存根测试。每个测试都会创建ByteArrayInputStream
和ByteArrayOutputStream
预期的客户端请求和服务器响应,因此我可以使用JUnit对我的协议实现执行逻辑单元测试。它是有效的,但为每个命令测试创建夹具(准备数据)太无聊了。
在我的情况下真的使用模拟吗?这个解决方案不太复杂吗?如何通过输入和输出流模拟数据序列?
答案 0 :(得分:1)
您可以将Streams
包装在一个更容易创建和断言的对象中。这可用于端到端测试。
对于单元测试,您可以将逻辑提取到可独立测试的方法中,而无需设置复杂的夹具。