我正在尝试修补一个类,让一个正在测试的函数创建一个修补类的实例,让该实例调用一个类函数,然后我想测试那个类函数是否被调用。我怎么能这样做?
以下是我的代码的基本变体:
测试文件:
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类不同部分的变体,它的返回值,但我似乎无法让它工作。我怎么能这样做?非常感谢!
答案 0 :(得分: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)