每当我运行 test.py 时,我都会得到:
(blog-1rz6wx-6)λpython manage.py test为创建测试数据库 别名“默认” ...系统检查未发现问题(0静音)。 。F.. ================================================== ===================失败:test_post_detail_view(blog.tests.BlogTests) -------------------------------------------------- --------------------追溯(最近一次通话):文件 “ C:\ Users \ **** \ Desktop \ blog \ blog \ tests.py”,第40行,在 test_post_detail_view self.assertEqual(response.status_code,200) AssertionError:404!= 200
--------------------------------------------------- -----------------------在0.776秒内进行了4次测试
FAILED(failures = 1)正在销毁测试数据库的别名'default'...
我的 test.py 代码:
def test_post_detail_view(self):
response = self.client.get('/post/1/')
no_response = self.client.get('/post/100000')
self.assertEqual(response.status_code, 200)
self.assertEqual(no_response.status_code, 404)
self.assertContains(response, 'A good title')
self.assertTemplateUsed(response, 'post_detail.html')
urls.py 与 settings.py:
位于同一文件夹中from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('blog.urls')),
]
和与views.py位于同一文件夹中的 urls.py :
from django.urls import path
from .views import BlogListView, BlogDetailView
urlpatterns = [
path('post/<int:pk>', BlogDetailView.as_view(), name = 'post_detail'),
path('',BlogListView.as_view(),name = 'home')
]
我不知道,当我将响应更改为response = self.client.get('')
时,它确实带有代码200,但是TemplateUsed显然变成了'home.html 。
谢谢。
答案 0 :(得分:1)
似乎/post/1/
端点不存在。您可能要尝试消除最后的/
,并确保您的装置会导致创建具有该ID的帖子。
答案 1 :(得分:1)
我好像您正在URL col1 col2
0 1 3
1 2 4
中传递帖子ID,但是当您在Django中运行测试时,它将创建一个单独的数据库。要成功运行测试,您需要定义 function formatDate(date) {
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var monthIndex = date.getMonth();
var year = date.getFullYear();
var day = date.getUTCDate();
return monthNames[monthIndex] + ' ' + year + ' ' + day;
}
$( function() {
$( "#slider2" ).slider({
range: "min",
min: new Date().getTime(),
max: new Date('2020-11-15T00:00:00').getTime(),
step: 1,
slide: function( event, ui ) {
$( "#spinner2" ).val( ui.value );
$( "#amount" ).val( formatDate(new Date(ui.value)));
}
});
} );
$( "#spinner2" ).spinner({
min: 7,
max: 21,
spin: function (event, ui) {
$("#slider2").slider("value", ui.value);
}
});
并创建一个帖子以成功运行测试。