0

我正在尝试修补一个类,让一个被测函数创建一个修补类的实例,让该实例调用一个类函数,然后我想测试该类函数是否被调用。我怎样才能做到这一点?

以下是我的代码的基本变体:

测试文件:

class TestChannel(unittest.TestCase):
    @patch("notification.models.Channel")
    def testAddChannelWithNamePutsChannel(self, *args):
        addChannelWithName("channel1")
        self.assertTrue(Channel.put.called)

要测试的代码:

def addChannelWithName(name):
    channel = Channel(name = name)
    channel.put()

基本上,我想测试调用了 channel.put() 。当然,这段代码不起作用,因为我正在检查类函数 put() 是否不是为实例调用的,而是在一般情况下调用的。我需要在实例上调用它才能通过。我已经尝试了几种模拟 Channel 类不同部分的变体,它是返回值,但我似乎无法让它工作。我该怎么做?非常感谢!

4

1 回答 1

1

让 addChannelWithName 函数返回 Channel 实例怎么样?

def addChannelWithName(name):
    channel = Channel(name = name)
    channel.put()
    return channel

class TestChannel(unittest.TestCase):
    @patch("notification.models.Channel")
    def testAddChannelWithNamePutsChannel(self, *args):
        channel = addChannelWithName("channel1")
        self.assertTrue(channel.put.called)
于 2013-04-17T15:35:18.663 回答