小编Soa*_*ask的帖子

在Django中测试"不同层"的最佳实践是什么?

不是新手测试,但是对于在Django中测试不同层的一堆建议感到非常困惑.

一些人建议(并且他们是对的)避免模型中的Doctests因为它们不可维护...

其他人说不使用灯具,因为它们比辅助功能灵活性差,例如..

还有两组人在争取使用Mock对象.第一组相信使用Mock并隔离系统的其余部分,而另一组则更喜欢停止模拟 并开始测试 ..

我上面提到的,主要是关于测试模型.功能测试是另一个故事(使用test.Client()VS webTest VS等)

是否有任何可维护,可行且适当的方法来测试不同的层?

UPDATE

我知道Carl Meyer在PyCon 2012上的演讲.

testing django tdd automated-tests django-testing

37
推荐指数
2
解决办法
3388
查看次数

Django Forms,在Meta类中有多个"模型"?

我们可以在表单的"元类"部分中定义多个模型吗?

这是我的例子:

from django import forms

from django.contrib.auth.models import User , Group

from django.forms import ModelForm

from django.utils.translation import ugettext as _

from profiles.models import Student , Tutor 


class RegistrationForm(ModelForm):
    email           = forms.EmailField(label=_('Email Address:'))
    password        = form.CharField(label=_('Passsword:') , widget = forms.PasswordInput(render_value = False))
    password1       = form.CharField(label=_('Verify Passsword:') , widget = forms.PasswordInput(render_value = False))

    class Meta:
        model = [Student , Tutor] ## IS THIS TRUE ???
Run Code Online (Sandbox Code Playgroud)

django django-forms django-admin django-registration

7
推荐指数
2
解决办法
4748
查看次数

Django,如何用django-mptt做CRUD?

我们如何使用通用视图django-mptt实现CRUD功能?我搜索了很多,找不到一个教程/示例代码.

假设我们有一个课程层次结构或类别层次结构,或者类似的东西...我们如何添加/删除/更新/读取它们?

比如我有这个模型:

from django.db import models
from mptt.models import MPTTModel , TreeForeignKey


class Genre(MPTTModel):
    name            = models.CharField(max_length = 50 , unique = True)
    parent          = TreeForeignKey('self' , null = True , blank = True , related_name = 'children')

    class MPTTMeta:
        order_insertion_by = ['name']
Run Code Online (Sandbox Code Playgroud)

这个views.py:

from django.views.generic.list_detail import object_list
from mp.models import Genre

def genres_list(request):
    ''' Shows all of the genres '''
    return object_list(request,
            queryset = Genre.tree.all() ,
            template_name = 'genres.html' ,
            # template_object_name = 'nodes' …
Run Code Online (Sandbox Code Playgroud)

django crud django-models django-mptt

3
推荐指数
1
解决办法
2668
查看次数

解释C中这个"静态变量"的行为

我正在阅读"黑客攻击,剥削艺术"一书,这个代码示例让我很困惑.

它位于全局变量范围的上下文中:

#include <stdio.h>

void function() { // An example function, with its own context
    int var = 5;
    static int static_var = 5; // Static variable initialization
    printf("\t[in function] var = %d\n", var);
    printf("\t[in function] static_var = %d\n", static_var);
    var++; // Add one to var.
    static_var++; // Add one to static_var.
}

int main() { // The main function, with its own context
    int i;
    static int static_var = 1337; // Another static, in a different context
    for(i=0; i …
Run Code Online (Sandbox Code Playgroud)

c debugging static-variables

-4
推荐指数
1
解决办法
481
查看次数