Why python mock patch doesn't work?

后端 未结 2 773
小蘑菇
小蘑菇 2020-11-30 04:35

I have two files

spike.py

class T1(object):
    def foo(self, afd):
        return \"foo\"

    def get_foo(self):
        return self.foo(1)


def b         


        
2条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-30 05:09

    Access bar using spike.bar. Imported bar is not affected by mock.patch.

    from unittest import TestCase
    import unittest
    from mock import patch, MagicMock
    from spike import T1
    import spike # <----
    
    
    class TestShit(TestCase):
        @patch('spike.T1.foo', MagicMock(return_value='patched'))
        def test_foo(self):
            foo = T1().get_foo()
            self.assertEqual('patched', foo)
    
        @patch('spike.bar')
        def test_bar(self, mock_obj):
            mock_obj.return_value = 'patched'
            bar = spike.bar() # <-----
            self.assertEqual('patched', bar)
    
    
    if __name__ == "__main__":
        unittest.main()
    

提交回复
热议问题