Как издеваться над классом отдыха в колбе с помощью kwargs - PullRequest
0 голосов
/ 25 сентября 2019

Из Документация Flask-RESTful 0.3.7 для промежуточного использования в разделе Передача параметров конструктора в ресурсы в нижней части, как бы вы написали тест, чтобы смоделировать kwargs?Примечание: я настроил его так, чтобы класс Smart Engine передавался напрямую, а не создавался для переменной, а затем передавался.

from flask_restful import Resource

class TodoNext(Resource):
    def __init__(self, **kwargs):
        # smart_engine is a black box dependency
        self.smart_engine = kwargs['smart_engine']

    def get(self):
        return self.smart_engine.next_todo()

Вы можете вставить требуемую зависимость в TodoNext следующим образом:

api.add_resource(TodoNext, '/next',
    resource_class_kwargs={ 'smart_engine': SmartEngine() })

Тестовый класс в вопросе:

import unittest

class TestTodoNext(unittest.TestCase):
    todo_next_instance = TodoNext() # How would you mock smart_engine in this case?

1 Ответ

1 голос
/ 25 сентября 2019

Вы можете использовать Mock объект из unittest.mock для макета smart_engine.

import unittest
from unittest.mock import Mock

class TestTodoNext(unittest.TestCase):
    smart_engine = Mock()
    smart_engine.next_todo.return_value = "YOUR DESIRED RETURN VALUE"
    todo_next_instance = TodoNext(smart_engine=smart_engine)
    self.assertEqual(todo_next_instace.get(), "YOUR DESIRED RETURN VALUE")
...