python-3.x - 用于 paramiko ssh 连接的 Python 单元测试

标签 python-3.x unit-testing

我写了一些运行良好的 Python 代码,现在我的任务是为这些代码编写测试。 我的团队使用模拟和 pytest,但我还没有真正能够复制粘贴和修改有用的东西。 我只需要快速启动,例如这里是我的代码的一部分:

ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.connect(hostname='1.2.3.4', username='ubuntu')

有人可以帮我写一个简单的单元测试吗? 我知道今后我必须考虑我的代码并编写测试,但我以前从未这样做过,所以我真的只是想获得一个实际的开始。

最佳答案

单元测试确保代码按要求工作。获取需求并编写测试以检查代码是否有效并显示代码是否抛出适当的错误。您可以使用 RobotFramework 或其他测试自动化软件来自动化测试。下面列出了您可能会问自己的一些问题:

ssh = paramiko.SSHClient()

  • paramiko.SSHClient 是否存在?
  • 有效吗?
  • 如果失败了怎么办?
  • 您是否遇到错误或软件挂起?

ssh.load_system_host_keys()

  • 你能加载系统 key 吗?
  • 你如何验证这一点?

ssh.connect(hostname='1.2.3.4', username='ubuntu')

  • 你如何证明这种联系存在?
  • 如果您尝试连接到另一台主机会怎样?
  • 您收到错误消息了吗?
  • 您可以使用用户名“ubuntu”登录吗?
  • 如果您尝试使用其他用户名怎么办?
  • 连接是否失败?
  • 您是否收到一般性错误以便不向破解者提供有关您的安全性的线索?

单元测试证明通常是屏幕截图、日志条目或一些文档,表明您在运行测试时获得了预期的结果。希望这会有所帮助。

关于python-3.x - 用于 paramiko ssh 连接的 Python 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41472869/

相关文章:

python - 如何找到一个系列中多个组的总和?

python - 列表中出现频率最高的数字

python - python3中的唯一标识值

java - 如何模拟@Inject 接口(interface)

java - 对于接受类似类型的输入参数、相同的实现代码但不同的输出的测试用例,正确的实现是什么

unit-testing - 我如何在测试中模拟 Go 函数?

Python - 将数据从文件流式传输到启用异步的 Kinesis Producer

python - 为什么我的reverse()方法在python 3中不起作用?

c++ - 类里面大量数学运算的测试