2017-06-29 83 views
0

我想嘲笑如何嘲笑一个类的方法的返回值

os.stat(self.tmp_file).st_size

def original_func(): 
    print (os.stat("test.txt").st_size==35) 

我想这

@mock.patch("os.stat") 
def test(os_stat): 
    stat = mock.Mock() 
    stat.st_size.return_value = 35 
    os_stat.return_value = stat 
    original_func() 

它确实不行。 打印语句应该是正确的,而不是。如果您需要更多信息,请发表评论。

+1

请扩大不起作用。请提供表明它不工作的输出。它是不是在嘲笑,仍在执行“真实”的方法?请解释。 – idjaw

+0

@idjaw我已经添加了使用它的功能。请检查是否需要其他信息。 – Akamad007

回答

0

这似乎是工作

import os 
import mock 


def original_func(): 
    print (os.stat("test.txt").st_size == 35) 


@mock.patch("os.stat") 
def test(os_stat): 
    os_stat.return_value = mock.Mock(st_size=35) 
    original_func() 

test()