Quindi, ho una vista a forma di pallone, che aggiunge un'attività di sedani a una coda e restituisce 200 all'utente.Test unitario Visualizzazione di mocking di compiti di sedano
from flask.views import MethodView
from app.tasks import launch_task
class ExampleView(MethodView):
def post(self):
# Does some verification of the incoming request, if all good:
launch_task(task, arguments)
return 'Accepted', 200
Il problema è con il test di seguito, io non voglio avere un'istanza di sedano ecc ecc voglio solo sapere che dopo tutto la verifica è ok, restituisce 200 per l'utente . Il sedano launch_task()
verrà testato altrove.
Quindi sono entusiasta di prendere in giro quella chiamata launch_task()
così essenzialmente non fa nulla, rendendo la mia unità indipendente dall'istanza di sedan.
Ho provato varie incarnazioni di:
@mock.patch('app.views.launch_task.delay'):
def test_launch_view(self, mock_launch_task):
mock_launch_task.return_value = None
# post a correct dictionary to the view
correct_data = {'correct': 'params'}
rs.self.app.post('/launch/', data=correct_data)
self.assertEqual(rs.status_code, 200)
@mock.patch('app.views.launch_task'):
def test_launch_view(self, mock_launch_task):
mock_launch_task.return_value = None
# post a correct dictionary to the view
correct_data = {'correct': 'params'}
rs.self.app.post('/launch/', data=correct_data)
self.assertEqual(rs.status_code, 200)
Ma non riesco a farlo funzionare, mio punto di vista appena esce con un errore 500. Qualsiasi assistenza sarebbe apprezzata!