在Twisted中测试时如何使用@ defer.inlineCallbacks将模拟应用于函数/方法

时间:2019-02-20 09:12:41

标签: python twisted twisted.web

在Twisted中进行测试时,如何使用@ defer.inlineCallbacks将模拟应用于函数/方法

你好!面临问题。当以扭曲方式编写测试时,无法将@ mock.patch应用于@ defer.inlineCallbacks下的函数/方法。 @ mock.patch将被忽略,测试将输入函数/方法。

示例:

  

test.py

import mock

from twisted.internet import defer
from twisted.trial import unittest


@defer.inlineCallbacks
def function_with_inlinecallbacks(x, y)
    print('Hello Twisted')

def some_function(x, y, z):
    .....
    v = yield function_with_inlinecallbacks(x, y)
    .....


class MyTest(unittest.TestCase)
    @mock.patch('function_with_inlinecallbacks')
    def test(self, mock):
        ......
        some_function(x, y, z)
        ......

在这种情况下,测试将忽略模拟并进入函数。

在这种情况下有没有办法嘲笑?

谢谢您的帮助!

0 个答案:

没有答案