クライアント要求とWebSocket接続の両方にaiohttpを使用すると、適切なpytest実装を見つけようとしています。クライアント要求をWebSocket接続のPytestテスト
は、私が何をすべきかわからない接続のWebSocketをからかうためhttps://pypi.python.org/pypi/aioresponses/0.1.2
aioresponses
を使用しています。誰でも提案はありますか?
ありがとうございます!
クライアント要求とWebSocket接続の両方にaiohttpを使用すると、適切なpytest実装を見つけようとしています。クライアント要求をWebSocket接続のPytestテスト
は、私が何をすべきかわからない接続のWebSocketをからかうためhttps://pypi.python.org/pypi/aioresponses/0.1.2
aioresponses
を使用しています。誰でも提案はありますか?
ありがとうございます!
クライアントをテストするために偽のサーバーを使用しないでください(おそらく、サーバーのテストにaiohttpが提供するテストクライアントを使用するなど)。偽のクライアントの
例:https://github.com/aio-libs/aiohttp/blob/master/examples/fake_server.py
の例では、WebSocketを使用法を示すものではありませんが、私はかなり確信して、あなたが私のアイデアを持って、WebSocketをに示すアプローチを拡張するための十分な知識を持ってきました。
[編集]
偽のサーバーに対するWSGIの世界のテストでは難しいです:それは、少なくとも別のスレッドが必要です。それはタスクをasyncioはかなり簡単です。
私は間違ってはいけません。私はaioresponsesなどに対して助言をしません、私は強調したい:asyncioの世界では、応答を嘲笑する必要性はかなり低いです。
偽のサーバーベースのアプローチははるかに信頼性が高いです:実際に猿のパッチを当てたデータだけでなく、トランスポートレイヤ全体をテストしています。
aioresponseのようなライブラリは、aiohttpクラスのプライベート属性を使用しますが、次のaiohttpのリリースによって動作が壊れる可能性があります。さらに、まれにしか使用されない場合もあります。
私は解決策として何らかの偽のサーバーを使用することを考えていました。しかし、私はそれが "ベストプラクティス"と考えられているのか疑問に思っていました。ほんとありがと。偽のサーバーに行く! 謝辞として:aioresponsesのような図書館の使用を勧めますか? – sanders
更新された回答をお読みください。 –
非常にクリアです。どうもありがとう!私は、パイソンの専門家の中には、他の人に説明する時間を取る方法が大好きです。 – sanders