发布于 2024-12-10 13:02:15 字数 390 浏览 0 评论 0原文

我设计了实现一些服务器协议的Java 类。例如,它有 getProtocolVersion() 方法,该方法返回最新的协议版本。该类的对象通过InputStreamOutputStream实现连接到服务器。

我对每个服务器命令的存根进行了测试。每个测试都会创建带有预期客户端请求和服务器响应的 ByteArrayInputStream 和 ByteArrayOutputStream ,以便我可以使用 JUnit 对协议实现执行逻辑单元测试。它可以工作,但是为每个命令测试创建夹具(准备数据)太无聊了。

Is it really to use mocking in my case? Is this solution less complex?如何通过输入和输出流模拟数据序列?

I've designed Java class that implements some server protocol. For example, it has getProtocolVersion() method, which return latest protocol version. Object of this class is connected to the server through InputStream and OutputStream implementations.

I have a test with stubs for each server command. Every test creates ByteArrayInputStream and ByteArrayOutputStream with expected client requests and server responses so I can perform logic unit testing of my protocol implementation with JUnit. It's works but creating fixture (prepare data) for each command test is too boring.

Is it really to use mocking in my case? Is this solution less complex? How to mock data sequences through input and output streams?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

探春 2024-12-17 13:02:15

您可以将 Streams 包装在更容易创建和断言的对象中。这可以用于端到端测试。

对于单元测试,您可以将逻辑提取到可独立测试的方法中,而无需设置复杂的装置。

You could wrap the Streams in an object that is easier to create and assert with. This can serve for end-to-end tests.

For unit tests, you can extract the logic into methods that are independently testable without having to setup a complex fixture.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文