相关疑难解决方法(0)

如何将TDD应用于基于Django类的通用视图?

由于Django中基于类的通用视图涉及框架的一些工作,我发现很难以TDD风格使用它们.现在我使用TestClient从http模拟堆栈访问视图,但我更愿意在使用TestClient进行"功能"测试之前正确地测试特定方法(例如get_object和get_queryset的覆盖).

是否有(快速)方法来获取ClassView的正确实例以对其执行单元测试?

python testing django tdd

24
推荐指数
3
解决办法
5868
查看次数

django - HttpRequest对象没有属性'session'

我似乎无法让会议工作.Django抱怨HttpRequest对象没有名为'session'的属性.在文档中,它清楚地表明,如果您启用了中间件,并且已安装的应用程序中包含django.contrib.sessions,那么您就可以开始了.我使用单元测试得到这个错误.

在我的views.py中:

def home_page(request):
    response = render(request, 'home.html', {'message_text' : request.session.get('message_text', ''),
'ip_address'    :   request.session.get('ip_address', ''),
'port_number'   :   request.session.get('port_number', ''),
'command_text'  :   request.session.get('command_text', ''),})

    request.session['message_text'] = ''

    return response
Run Code Online (Sandbox Code Playgroud)

我试图获得的会话值是我试图在views.py中的其他地方的表单post方法中设置的.

它还声明在新项目上默认启用这些.所以我创建了一个全新的django项目并在控制台中检查了session属性.这正是我所做的:

(django1.5)Python $ django-admin.py startproject testing
(django1.5)Python $ cd testing/
(django1.5)testing $ python manage.py shell
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.http import HttpRequest
>>> r = …
Run Code Online (Sandbox Code Playgroud)

django session httprequest django-unittest

4
推荐指数
2
解决办法
7637
查看次数

标签 统计

django ×2

django-unittest ×1

httprequest ×1

python ×1

session ×1

tdd ×1

testing ×1