如何将类继承用于Python的unittest

如何将类继承用于Python的unittest,python,unit-testing,class,inheritance,Python,Unit Testing,Class,Inheritance,我需要为以下类编写单元测试: class Calculator: def __Puissance(self, a): return(a*10) def sum(self, a, b): return (self.__Puissance(a) + self.__Puissance(b)) 这是我的尝试(我还没有实现断言): 我的问题如下:我试图通过使用Calculator2类中的\u Puissance来模拟属于Calculator类的名为\u

我需要为以下类编写单元测试:

 class Calculator:
    def __Puissance(self, a):
        return(a*10)
    def sum(self, a, b):
        return (self.__Puissance(a) + self.__Puissance(b))
这是我的尝试(我还没有实现断言):


我的问题如下:我试图通过使用
Calculator2
类中的
\u Puissance
来模拟属于
Calculator
类的名为
\u Puissance
的函数,但由于第一个函数是
Calculator
类的私有函数,因此无法模拟和
sum()
函数使用它。在不修改函数的私有声明的情况下,我如何模拟
\u Puissance
函数?

到目前为止,您尝试了什么?展示你的尝试和你的困境,我们非常乐意为你解答这样的问题:)你为什么要嘲笑“私有”方法?另外,为什么要使用
\uu双下划线
名称(特别是如果您真的希望能够覆盖它的话)?事实上,我正在处理的scirpt非常复杂,无法在这里讨论。因此,我给出了这个简单的示例,以了解如何存根私有函数。为什么这是一个类?如果您掌握了类定义,请将
\u Puissance
作为一个实现方法(使用一个前导下划线)。否则,该方法的真实名称(对于外部世界)实际上是
\u Calculator\u Puissance
(并且不比python中的任何东西更“私有”)。
import unittest  

class calculator2(Calculator):
    def __Puissance(self,a):
        return(a*1000)

class TestCalculator(unittest.TestCase):
    def setUp(self):
        self.calc = calculator2()
    def test_sum(self):
        answer = self.calc.sum(2, 4)
        print(answer)