2017-10-03 3 views
1

私はPyQt5 GUIを使用するPython(3.5)プログラムで作業しています。 GUIでは、Webサイトのドキュメントへのヘルプリンクを追加する必要があります。QDesktopServices openUrlを使用するコードに対して単体テストを書く方法はありますか?

QDesktopServices.openUrl(QUrl("my_url")) 

それはうまく動作しますが、私はそれが常にそうであることを確認したいと思います。

迅速で汚れたunittestは、関数を呼び出すだけでエラーがないことに気づくだけです。正しいウェブサイトのページが表示されたことを確認するテストをしたいと思います。私は何を使うべきですか?

+0

解決方法を見つけましたか?それが私の答えと異なるなら、私はそれが何だったのか知ることに興味があります。 – ekhumoro

+0

ありがとうございました。残念ながら、私は "他に何かを使う"以外の完全な解決策はありません。とにかく戻り値をテストすることは、私がやったよりもさらに一歩進んでいます。 –

+0

あなたは私の答えが幾分有益であることを知っていたので、それを受け入れたとしてマークしてもよろしいですか? – ekhumoro

答えて

0

Qt自体が決してエラーを発生させないため(もちろん、PythonやPyQtの場合もありますが、まったく関係のない理由で)、エラーをチェックすることはまったく機能しません。あなたができることは返り値openUrlをチェックすることです。成功したかどうかによって、単にTrueまたはFalseが返されます。しかしopenUrlのためのQtのドキュメントから、次の点に注意してください。

警告の戻り値は、アプリケーションが が正常に 外部アプリケーションでURLを開くために、オペレーティング・システムを要求したことを示しています。外部アプリケーションは依然として、 要求されたURLの起動または失敗に失敗する可能性があります。この結果は に報告されることはありません。

さらに制御したい場合は、代わりにPythonのwebbrowserモジュールを使用することをおすすめします。これは、例えば、テストの目的で自分の模擬ブラウザクラスregisterを許可するでしょう。 webbrowserモジュールは純粋なPythonで書かれており、the codeはかなり簡単です。

関連する問題