Нужно ли создать тест для ModelForm
, как показано ниже? Причина в том, что на самом деле нет кода.Как правильно протестировать ModelForms и представления в Django
class HouseForm(forms.ModelForm):
class Meta:
model = House
exclude = ['user',]
fields = ['area', 'num_floors',]
Так что только часть для тестирования просто проверить, если exclude
и include
поля не имеют общее поле. Также, чтобы проверить, что exclude
и include
действительно имеют все поля модели и не более.
Имеет ли смысл?
С другой стороны, я хотел бы написать единичный тест для следующего вида. Он использует ModelForm выше.
Возможно ли как-нибудь написать настоящий единичный тест без использования некоторых инструментов, таких как Selenium, что в некотором смысле функциональное тестирование? Дело в том, что я не знаю, как передать некоторые значения поля над представлением.
@login_required
def update_or_create_house(request, house_id=None):
if house_id:
house = request.user.house_set.get(pk=house_id)
else:
house = None
if request.method=="POST":
form = HouseForm(request.POST, instance=house)
if form.is_valid():
result = form.save(commit=False)
result.user = request.user
result.save()
return redirect('houses-viewall')
else:
print form.errors
else:
form = HouseForm(instance=house)
return render(request, 'housemgm/edit_house.html', {'form':form, 'house':house,})
Последний вопрос: хороший дизайн для редактирования и создания функциональных возможностей в одном представлении? Или я должен разделить их на две части?
Просто для полноты модель
class House(models.Model):
area = models.FloatField()
owner = models.ForeignKey(User)
num_floors = models.IntegerField(default=1)
Мне было непонятно, как я могу передать значения формы форме на просмотр тестовым клиентом. Но в [link] (http://stackoverflow.com/questions/11885211/how-to-write-a-unit-test-for-a-django-view?rq=1) был дан ответ. Поэтому я просто хочу использовать data-argument client.get или client.post. – user3142459