如何将类继承用于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)