我在python代码中使用pexpect模块连接到远程主机并运行一些命令。
在为上述程序编写单元测试并为pexpect.spawn
使用模拟时,针对pexpect.spawn类方法运行断言时,我得到了AssertionError
。
示例程序:
import pexpect
class Myclass():
def spawn_thread(self):
con = pexpect.spawn('ssh user@ip')
con.expect('$')
样本单元测试程序:
import unittest
from unittest.mock import patch
from myclass import Myclass
class Test_Myclass(unittest.TestCase):
@patch("pexpect.spawn")
def test_spawn(self, mock):
Myclass().spawn_thread()
self.assertIsInstance(mock, unittest.mock.MagicMock)
mock.assert_called_with('ssh user@ip')
mock.expect.assert_called_with('$')
当我在unittest上运行时,它失败并显示错误
raise AssertionError('Expected call: %s\nNot called' % (expected,))
AssertionError: Expected call: expect('$')
Not called
我进行了很多搜索,但不知道自己在做什么错?这里有人可以建议我或为我指明正确的方向吗?