7

我想知道如何在我的烧瓶 websocket 服务器上进行单元测试。我的应用程序在 REST API(Flask-restful)和 Web Socket(Flask-SocketIO)上支持相当多的接口。所有的 websocket “emit” 都在 celery 进程中进行。我在对那些 websocket 逻辑进行单元测试时遇到问题。

  1. 几个人说,首先我得把这个rest-api + websocket应用分开。在单个服务器上运行整个应用程序(逻辑上)是否很奇怪?

  2. 如何对 websocket 代码进行单元测试?

谢谢

4

1 回答 1

8

有些人更喜欢 HTTP 和 WebSocket 的单独应用程序,但这不是我会盲目推荐的东西。在某些情况下这样做是有意义的,而在其他情况下则没有,特别是如果您使用的是 Flask-SocketIO,它为您提供了相当强大的集成。

Flask-SocketIO 扩展包括一个测试客户端,在概念上类似于 Flask 的测试客户端,但旨在与套接字路由一起使用。你看过那个吗?

如果你想要一个使用 Flask、Celery、Socket.IO 并且对所有内容都有一套很好的单元测试的示例应用程序,请查看 Flack:https ://github.com/miguelgrinberg/flack 。我在 PyCon 2016 上做了一个教程,详细介绍了这个应用程序:https ://www.youtube.com/watch?v=tdIIJuPh3SI 。

于 2016-07-07T20:02:46.273 回答