Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么可以';测试是否解决了正确的通用视图?_Python_Django_Unit Testing_Testing_Tdd - Fatal编程技术网

Python 为什么可以';测试是否解决了正确的通用视图?

Python 为什么可以';测试是否解决了正确的通用视图?,python,django,unit-testing,testing,tdd,Python,Django,Unit Testing,Testing,Tdd,我想进入TDD。根据哈利·珀西瓦尔的书,我想一步一步地走。所以我的第一个单元测试应该是检查 found = resolve("/") 真正调用正确的函数。所以我做了这个断言: self.assertEqual(found.func, ListView.as_view()) 但它告诉我: AssertionError: <function ListView at 0x3389668> != <function ListView at 0x35c1e60> Assert

我想进入TDD。根据哈利·珀西瓦尔的书,我想一步一步地走。所以我的第一个单元测试应该是检查

found = resolve("/")
真正调用正确的函数。所以我做了这个断言:

self.assertEqual(found.func, ListView.as_view())
但它告诉我:

AssertionError: <function ListView at 0x3389668> != <function ListView at 0x35c1e60>
AssertionError:!=
那么为什么函数不匹配呢?

ListView.as\u view()
在每次调用时都会生成新的视图函数对象。因此,
url.py
中生成的函数与测试中生成的函数不同

您可以在
views.py
中一次性创建视图函数,并在
url.py
tests.py
中引用它:

视图.py

home_view = ListView.as_view()
url(r'^$', views.home_view, name='home'),
self.assertEqual(found.func, views.home_view)
url.py

home_view = ListView.as_view()
url(r'^$', views.home_view, name='home'),
self.assertEqual(found.func, views.home_view)
测试.py

home_view = ListView.as_view()
url(r'^$', views.home_view, name='home'),
self.assertEqual(found.func, views.home_view)
ListView.as_view()
在每次调用时生成新的视图函数对象。因此,
url.py
中生成的函数与测试中生成的函数不同

您可以在
views.py
中一次性创建视图函数,并在
url.py
tests.py
中引用它:

视图.py

home_view = ListView.as_view()
url(r'^$', views.home_view, name='home'),
self.assertEqual(found.func, views.home_view)
url.py

home_view = ListView.as_view()
url(r'^$', views.home_view, name='home'),
self.assertEqual(found.func, views.home_view)
测试.py

home_view = ListView.as_view()
url(r'^$', views.home_view, name='home'),
self.assertEqual(found.func, views.home_view)

您可以检查
\uuuuu类
():


您可以检查
\uuuuu类
():


非常感谢。与@alecxe的建议相比,这样做有什么好处?如果您的项目中只有一个
ListView
,那么@alexce的建议是完美的。但是如果有几个
ListView
s,并且您想要区分它们,那么我的方法会更好。谢谢。与@alecxe的建议相比,这样做有什么好处?如果您的项目中只有一个
ListView
,那么@alexce的建议是完美的。但是如果有几个
ListView
s,并且您想要区分它们,那么我的方法会更好。