use*_*459 2 django unit-testing
是否需要为以下内容创建测试ModelForm?原因是实际上没有代码.
class HouseForm(forms.ModelForm):
class Meta:
model = House
exclude = ['user',]
fields = ['area', 'num_floors',]
Run Code Online (Sandbox Code Playgroud)
所以测试的唯一部分就是检查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,})
Run Code Online (Sandbox Code Playgroud)
最后一个问题:在同一视图中编辑和创建功能是一个好的设计吗?或者我应该将它们分成两部分?
只是为了完整性,模型是
class House(models.Model):
area = models.FloatField()
owner = models.ForeignKey(User)
num_floors = models.IntegerField(default=1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |