SocketException:套接字已关闭。在单元测试期间

温特劳

我正在尝试对班级进行单元测试。

上课就像

class Manager{
    class Handler extends Thread{
        Socket socket = null;
        BufferedReader in = null;
        public Handler(Socket s){
            socket = s;
            try{
                in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            }
            catch(IOException e){
                ...
            }
        }
    }
}

并且也有单元测试代码,例如

@Test
public void testHandler(){
    Socket s = mock(Socket.class);
    Handler h = Manager.new Handler(s);
    InputStream is = new ByteArrayInputStream(new String("Hello").getBytes());

    try {
    when(s.getInputStream()).thenReturn(is);
    } catch (IOException e) {
        e.printStackTrace();
    }
    assertNotNull(h.in);
}

但是,我可以看到一条错误消息。错误原为

time, myPackage.Manager$Handler <init>
serious: null
    java.net.SocketException: Socket is closed
    at java.net.Socket.getInputStream(Unknown Source)
    at myPackage.Manager$Handler.<init>(Manager.java:70)
    at myPackage.Manager$SocketServerThread.run(Manager.java:249)

在行

in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

我怎么解决这个问题?

谢谢你。

编码器

您已经将传递Socket给您的Handler设置之前when(s.getInputStream()).thenReturn(is);
尝试这个

@Test
public void testHandler(){
  Socket s = mock(Socket.class);
  InputStream is = new ByteArrayInputStream(new String("Hello").getBytes());

  try {
    when(s.getInputStream()).thenReturn(is);
  } catch (IOException e) {
    e.printStackTrace();
  }

  Handler h = Manager.new Handler(s);

  assertNotNull(h.in);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SocketException:套接字已关闭

来自分类Dev

在单元测试期间利用资源

来自分类Dev

android SocketException:套接字已关闭

来自分类Dev

DateFormat ParseException仅在单元测试期间

来自分类Dev

单元测试期间的Python日志捕获

来自分类Dev

在单元测试期间安装Flask app.config

来自分类Dev

Spring单元测试期间无法加载ApplicationContext

来自分类Dev

是否可以在单元测试期间禁用Spring的@Async?

来自分类Dev

在Django单元测试期间需要运行celery worker

来自分类Dev

单元测试期间如何更新React Component道具?

来自分类Dev

单元测试期间的Python日志捕获

来自分类Dev

在单元测试期间禁用 python 日志记录

来自分类Dev

单元测试期间 SNMP 代理断开连接

来自分类Dev

你如何在单元测试期间模拟 LUIS?

来自分类Dev

Thymeleaf:在单元测试期间不渲染?

来自分类Dev

Flask应用程序的单元测试期间无法创建测试客户端

来自分类Dev

执行使用Java套接字的多个单元测试

来自分类Dev

模拟 TCP 套接字以进行单元测试的 Python 方法

来自分类Dev

Python:如何在单元测试期间覆盖复杂的函数?

来自分类Dev

使用SQLAlchemy进行单元测试期间防止接触db

来自分类Dev

$ scope。$ on在单元测试期间未在控制器中定义

来自分类Dev

单元测试期间Xcode CI机器人错误(意外的TestSuiteWillFinish)

来自分类Dev

android.util.Patterns.EMAIL在单元测试期间返回null

来自分类Dev

Laravel CSRF验证在单元测试期间失败(Laravel 4.1)

来自分类Dev

检查在执行单元测试期间是否连接了调试器

来自分类Dev

防止Spring在单元测试期间实例化某些bean

来自分类Dev

如何在单元测试期间让django进行身份验证

来自分类Dev

如何设置django在单元测试期间不使用内存数据库?

来自分类Dev

在单元测试期间如何跳过Fluent验证静态功能?

Related 相关文章

  1. 1

    SocketException:套接字已关闭

  2. 2

    在单元测试期间利用资源

  3. 3

    android SocketException:套接字已关闭

  4. 4

    DateFormat ParseException仅在单元测试期间

  5. 5

    单元测试期间的Python日志捕获

  6. 6

    在单元测试期间安装Flask app.config

  7. 7

    Spring单元测试期间无法加载ApplicationContext

  8. 8

    是否可以在单元测试期间禁用Spring的@Async?

  9. 9

    在Django单元测试期间需要运行celery worker

  10. 10

    单元测试期间如何更新React Component道具?

  11. 11

    单元测试期间的Python日志捕获

  12. 12

    在单元测试期间禁用 python 日志记录

  13. 13

    单元测试期间 SNMP 代理断开连接

  14. 14

    你如何在单元测试期间模拟 LUIS?

  15. 15

    Thymeleaf:在单元测试期间不渲染?

  16. 16

    Flask应用程序的单元测试期间无法创建测试客户端

  17. 17

    执行使用Java套接字的多个单元测试

  18. 18

    模拟 TCP 套接字以进行单元测试的 Python 方法

  19. 19

    Python:如何在单元测试期间覆盖复杂的函数?

  20. 20

    使用SQLAlchemy进行单元测试期间防止接触db

  21. 21

    $ scope。$ on在单元测试期间未在控制器中定义

  22. 22

    单元测试期间Xcode CI机器人错误(意外的TestSuiteWillFinish)

  23. 23

    android.util.Patterns.EMAIL在单元测试期间返回null

  24. 24

    Laravel CSRF验证在单元测试期间失败(Laravel 4.1)

  25. 25

    检查在执行单元测试期间是否连接了调试器

  26. 26

    防止Spring在单元测试期间实例化某些bean

  27. 27

    如何在单元测试期间让django进行身份验证

  28. 28

    如何设置django在单元测试期间不使用内存数据库?

  29. 29

    在单元测试期间如何跳过Fluent验证静态功能?

热门标签

归档