如何使用使用QDesktopServices OpenUrl的代码编写单元测试



我正在使用使用PYQT5 GUI的Python(3.5)程序。在GUI中,我需要添加一些网站上文档的帮助链接。我设法使其与:

QDesktopServices.openUrl(QUrl("my_url"))

它可以正常工作,但我想确保情况永远是这种情况。

快速而肮脏的Untest是调用该功能,并简单地注意到没有错误。我想进行一个测试,以检查正确的网站页面是否确实显示了。我应该使用什么?

检查错误根本行不通,因为QT本身永远不会引起错误(当然,Python或Pyqt可能会这样做,但出于完全不相关的原因)。您能做的最好的方法是检查openUrl的返回值,该值只需返回True还是False,具体取决于它是否"成功"。但是请注意QT文档的以下内容:

警告 true 的返回值表示应用程序具有 成功要求操作系统打开URL 外用。外部应用程序可能仍无法 启动或无法打开请求的URL。这个结果不会 报告回该应用程序。

如果您想要更多的控件,建议您改用Python的Webbrowser模块。例如,这将允许您注册自己的模拟浏览器类,以进行测试。webbrowser模块用纯Python编写,并且代码非常简单。

最新更新