2017-07-28 42 views
0

我想做一个单元测试来检查这个python函数(调度)是否将正确的参数传递给deal_with_result。Python单元测试;如何获取函数调用时传递的参数?

当在调度中调用函数deal_with_result时,是否有办法“劫持”输入参数?
我没有修改调度功能中的代码的权利。

这里是想预览我想在我的单元测试:

import maker 
from operators import op_morph 
import unittest 
from unittest.mock import Mock 
import cv2 

img = cv2.imread("/img_tests/unitTestBaseImage.png") 

def my_side_effect(*args, **kwargs): 
    global img 
    print(args) 
    print(kwargs) 
    if args!=None: 
     if len(args)>0: 
      if args[0] == img: 
       return 0 
      return 3 
     else: 
      return 2 
    return 1 

class TestCalls(unittest.TestCase): 

    def test_dispatch(self): 

     global img 
     makerMock = Mock() 
     makerMock.deal_with_result.side_effect = my_side_effect 

     #calling the dispatch function 
     maker.dispatch(["json_example.json"]) 

     #instead of passing this mock I want to get the real parameters passed 
     #when the function deal_with_result is called in dispatch. 
     temp=makerMock.deal_with_result("img") 
     print("image return code: "+str(temp)) 


if __name__ == '__main__': 
    unittest.main(exit=False) 

谢谢。

回答

0

我在找工作时一直在寻找答案,没有找到任何答案。我建议你和老板谈谈让你修改基本功能,这样你就不会浪费宝贵的时间和资源。

相关问题