我正在开发一个使用 PyQt5 GUI 的 python (3.5) 程序。在 GUI 中,我需要在网站上的文档中添加一些帮助链接。我设法使它与:
QDesktopServices.openUrl(QUrl("my_url"))
它工作正常,但我想确保它永远都是这样。
一个快速而肮脏的单元测试是调用该函数并简单地注意到没有错误。我想做一个测试来检查正确的网站页面确实出现了。我应该使用什么?
我正在开发一个使用 PyQt5 GUI 的 python (3.5) 程序。在 GUI 中,我需要在网站上的文档中添加一些帮助链接。我设法使它与:
QDesktopServices.openUrl(QUrl("my_url"))
它工作正常,但我想确保它永远都是这样。
一个快速而肮脏的单元测试是调用该函数并简单地注意到没有错误。我想做一个测试来检查正确的网站页面确实出现了。我应该使用什么?
检查错误根本不起作用,因为 Qt 本身永远不会引发错误(当然,Python 或 PyQt 可能会这样做,但出于完全不相关的原因)。您可以做的最好的事情是检查 的返回值openUrl
,它将简单地返回True
或False
取决于它是否“成功”。但请注意 Qt 文档中openUrl的以下内容:
警告:返回值为true表示应用程序已成功请求操作系统在外部应用程序中打开 URL。外部应用程序可能仍无法启动或无法打开请求的 URL。此结果不会报告给应用程序。
如果你想要更多的控制,我建议你改用 Python 的webbrowser模块。例如,这将允许您注册自己的模拟浏览器类以进行测试。该webbrowser
模块是用纯 Python 编写的,代码非常简单。