2016-04-26 59 views
2

我想測試裝飾的函數。當裝飾器已經被應用時,有沒有辦法模擬一個裝飾器和測試函數?在單元測試中模擬python裝飾器

import mock 


def decorator(func): 
    def wrapper(*args, **kwargs): 
     return 1 
    return wrapper 


def mocked(func): 
    def wrapper(*args, **kwargs): 
     return 2 
    return wrapper 


@decorator 
def f(): 
    return 0 


with mock.patch('test.decorator') as d: 
    d.side_effect = mocked 
    assert f() == 2 # error 
+0

我很難理解你要在這裏做什麼...你想改變裝飾'f'這個測試的函數嗎? – mgilson

+0

是的,我試圖用嘲弄取代裝飾者。 – user3216932

回答