我写了两个类:System和Order,它们代表“在线票务分发存储”之类的东西。在django的测试中连接模拟和客户端
加工顺序很简单:
order = Order('title', set(['1', '2', '5']))
System.fill(order)
但我想测试我的views.fill_order功能,并检查它是否从POST参数正确地填写订单。要做到这一点,我可以使用这样的模拟和客户端:
from core.order import Order
from core.system import System
from django.test.client import Client
from mock import Mock, sentinel
self.logged_client = Client()
# skipping logging process
Order = Mock(sentinel.return_value)
System = Mock()
System.fill = Mock()
# sending hypotetic POST
self.logged_client.post('/my_view_url/', {'title': self.PHANTOM, 'seat_numbers': '1I', 'seat_numbers': '3IV'})
System.fill.assert_called_with(Order.return_value)
Order.assert_called_with(self.PHANTOM, set(['1I', '2II', '3IV']))
但是...它不工作(断言失败)。如何解决它?
我知道这是因为我的views.fill_order函数中我做的:
from core.system import System
from core.order import Order
再次,但如何强制这个类测试持续期间被嘲笑?