如何使用Python unittest在另一个方法中模拟一个方法?

2024-03-28 12:17:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力模仿另一个方法中的一个方法,也就是说,我有两个类a,B,如下所示:

class A:
    def method_A(self):
        return "Hi"
class B:
    def method_B(self):
        instance_A = A()
        result = instance_A.method_A()
        print(result)

在这里,我想模拟方法A,同时测试方法B,但找不到方法。提前谢谢


Tags: 方法instanceselfreturndefresulthimethod
3条回答

你嘲笑一种方法到底是什么意思? 如果你的意思是为什么你的代码没有做任何事情,那是因为你需要调用这个方法 之后:-

B.method_B()

也许这会有所帮助,如果不是的话,你能再稍微解释一下这个问题吗

在这种情况下,首先您只需键入import mock即可导入模拟库

然后你想为它创建一个函数 1) 嘲弄

def mocking_method_A(self):
return Some_value

2)测试

def testing_method_B():
    with mock.patch.object(A, 'method_A', new=mocking_A):
        result = B().method_B()
        assert result == Some_value

我希望这就是你要找的

class A:
    def method_A(self):
        return "Hi"
class B:
    def method_B(self):
        instance_A = A()
        result = instance_A.method_A()
        return result

import mock

def mock_A(self):
    return 'Bye'


def test_method_B():
    with mock.patch.object(A, 'method_A', new=mock_A):
        result = B().method_B()
        assert result == 'Bye'

相关问题 更多 >