首页 > 解决方案 > 如何模拟在方法中创建的自我变量

问题描述

我在通过模拟函数编写单元测试用例时卡住了。我在函数内部创建了一个 self 变量,而不是通过 init 方法创建的。当我运行脚本时,它会引发错误。

myFooFile.py

class Foo(object):

    def my_foo(self):
        self.MY_LIST = []
        self.generate_value()
        self.other_function()
        
    def generate_value(self):
        some_ops_value = 10
        return self.MY_LIST.append(some_ops_value)

MY_LIST在方法中创建了变量my_foo,而不是通过__init__方法。我正在通过该generate_value方法收集值。当我尝试创建测试generate_value方法时,会引发错误

AttributeError:“Foo”对象没有属性“MY_LIST”。

不知道如何模拟 MY_LIST 并让它工作

下面是我的测试脚本:

import unittest
from unittest import TestCase, mock
from myFooFile import Foo

class FooTest(TestCase):

    def setUp(self):
        self.foo = Foo()
        
    def test_generate_value(self):
        self.assertEqual(self.foo.generate_value(), [10])
        
unittest.main()

标签: python-3.xunit-testingmockingpython-unittest

解决方案


推荐阅读