Mocking a class method that is used via an instance

后端 未结 3 2000
清酒与你
清酒与你 2021-02-03 10:25

I\'m trying to patch a class method using mock as described in the documentation. The Mock object itself works fine, but its methods don\'t: For example, their attributes like <

3条回答
  •  天命终不由人
    2021-02-03 11:10

    from mock import *
    
    class Lib:
        """In my actual program, a module that I import"""
        def method(self):
            return "real"
    
    class User:
        """The class I want to test"""
        def run(self, m):
    
            return m.method()
    
    with patch("__main__.Lib") as mock:
        #mock.return_value = "bla" # This works
        mock.method.return_value = "mock"
    
        print User().run(mock)
    

提交回复
热议问题