AssertionError:针对模拟方法运行断言时未调用

时间:2018-10-23 12:56:20

标签: python-3.x unit-testing

我在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

我进行了很多搜索,但不知道自己在做什么错?这里有人可以建议我或为我指明正确的方向吗?

0 个答案:

没有答案