Python模拟类实例化和访问私有成员变量
我想在更新成员变量值的类中测试一个方法。然而,类接受的构造函数参数在要测试的方法中不是必需的Python模拟类实例化和访问私有成员变量,python,unit-testing,mocking,Python,Unit Testing,Mocking,我想在更新成员变量值的类中测试一个方法。然而,类接受的构造函数参数在要测试的方法中不是必需的 class SimpleClass(Database): count = None def intoTwo(self, v): self.count = 2*v 现在我测试方法如下 import unittest import mock class TestSimpleClass(unittest.TestCase): @mock.patch('Simple
class SimpleClass(Database):
count = None
def intoTwo(self, v):
self.count = 2*v
现在我测试方法如下
import unittest
import mock
class TestSimpleClass(unittest.TestCase):
@mock.patch('SimpleClass', autospec=True)
def test_intoTwo(self, mock_simpleclass):
mock_instance = mock_simpleclass.return_value
mock_instance.intoTwo(2)
self.assertEqual(mock_instance.count,4)
我遇到以下错误:
<NonCallableMagicMock name='SimpleClass().count' id='139921148836112'>
请提出解决方案。我在其他帖子或博客中找不到相关内容。我不明白你想做什么。您有一个MagicMock实例,并对其调用一个方法。这里没有引用断言中的原始class.mock_instance.count?什么?正如响应所示,这只是一个模拟值本身。为什么您认为它会是4?所以mock_instance.intTwo不会调用实际的intoTwo函数?intoTwo函数设置类内count的值。我不明白你想做什么。您有一个MagicMock实例,并对其调用一个方法。这里没有引用断言中的原始class.mock_instance.count?什么?正如响应所示,这只是一个模拟值本身。为什么您认为它会是4?所以mock_instance.intTwo不会调用实际的intoTwo函数?函数设置类内计数的值。