У меня есть функция промежуточного программного обеспечения, которая определяет request.foo
.Функция, которую я хочу протестировать, зависит от определения foo из промежуточного программного обеспечения.Как протестировать указанную функцию, так как промежуточное ПО не запускается во время тестов?
Действительно должна быть функция, которая принимает запрос, выполняет запрос через все промежуточное ПО по порядку, а затем выплевывает окончательный запрос.(так же, как это было бы при переходе к представлению).Существует ли такая функция?
Я мог бы вручную вызвать функцию промежуточного программного обеспечения, но это похоже на взлом.Что если тестируемое промежуточное ПО зависит от другого промежуточного ПО?Я столкнулся бы с «промежуточным адом».
<пример>
функция промежуточного ПО:
class FooMiddleware():
def process_request(self, request):
req.foo = True if req.session.get('foo') in [1,2,3,4,5,6,7,8,9,10] else False
Вот функция, которую я хочу протестировать:
def getBaz(request):
if request.foo == True:
return something()
else:
return somethingElse()
Как мне проверить getBaz
?
<Возможность>
Я мог вручную запустить промежуточное ПО:
def test_getBaz(self):
request = HttpRequest('/blarg')
request.session['foo'] = 2
middleware = FooMiddleware()
request = middleware.process_request(request)
value = getBaz(request)
assertEqual( value, expected )
но это похоже на взлом.Что если тестируемое промежуточное ПО зависит от другого промежуточного ПО?
</ Возможности>