例如,我有一个简单的课程
class Child:
def __init__(self,name,age):
self.name=name
self.age=age
def __check(self):
if self.age >10:
"insert into db both age and name"
else:
print(self.age)
def call(self,flag):
if flag:
self.__check()
现在如何使用python中的模拟程序测试__check(private function)
答案 0 :(得分:0)
尝试:
my_child = Child("John", 9)
my_child.call(True)
如果要在__check()中尝试第一种情况,请将年龄更改为10岁以上。
答案 1 :(得分:0)
模拟sys.stdout
以声明打印内容
from StringIO import StringIO
def test_check(self):
ch = Child('bob', 2)
self.assertEqual(ch._Child__check(), None)
with mock.patch('sys.stdout', new_callable=StringIO) as mock_out:
ch = Child('bob', 2)
self.assertEqual(ch._Child__check(), None)
self.assertEqual(mock_out.getvalue(), '2\n')