Как протестировать джанго. просмотр правильных вычисленных значений

#django

Вопрос:

У меня есть простое представление для пересчета значений (g -> kg) в форме django, чтобы добавить данные внутрь представления и просто пересчитать их.

Теперь я хочу протестировать такое представление, чтобы присвоить ему значение и сравнить «вывод», как мне его протестировать. Вот сам код представления:

 def weight_converter(request):
    if request.method == 'POST':
        form = Adder(request.POST)
        if form.is_valid():
            try:
                value_in_g = int(form.cleaned_data['added_data'])
                result_kg = value_in_g/1000
                return render(request, 'weight_converter.html',
                              {'result': result_kg, 'initial_value': value_in_g,})
            except ValueError as e:
                e.message = 'Enter the number, not the string'
                return render(request, 'weight_converter.html', {'message': e.message})
    else:
        form = Adder()
    return render(request, 'weight_converter.html', {'form': form})
 

https://pastebin.com/tUkzsUvR

Сработает ли что-то подобное?

 def test_weightconverter_view_calculation(self):
    response = self.client.get('/weight_converter/', {'value_in_g': '1234'})
    self.assertEqual(response.context['result'], 1.234)
 

Заранее спасибо за любые советы! )

Ответ №1:

Вы делаете запрос GET, а не запрос POST, и result он указан только с запросом POST и, вероятно, с added_data ключом as:

 def test_weightconverter_view_calculation(self):
    response = self.client.post('/weight_converter/', {'added_data': '1234'})
    self.assertEqual(response.context['result'], 1.234) 

Однако здесь, вероятно, было бы более разумно выполнять вычисления с помощью запроса GET, поскольку при преобразовании граммов в килограммы нет побочных эффектов.