我在其中一个观看中使用了get_signed_cookie
,并且它有效。问题在于测试它,我在我的测试中使用Django的django.core.signing
模块手动签署我的cookie,其盐与我的实际代码相同(我使用的是盐#' 39; s在我的settings
)。
当我进行非自动化测试时,一切都很顺利。我将测试中设置的cookie与Django本身设置的cookie进行了比较,并且它们的结构相同:
在我的测试中(我在我的测试中手动签署字符串' test_cookie_value')
{'my_cookie': 'test_cookie_value:s5SA5skGmc4As-Weyia6Tlwq_V8'}
Django的:
{'my_cookie': 'zTmwe4ATUEtEEAVs:1YRl0a:Lg3KHfpL93HoUijkZlNphZNURu4'}
但是当我的观点尝试get_signed_cookie("my_cookie", False, salt="my_salt")
时,会返回False
。
我认为这很奇怪,虽然我试图服从测试山羊(第一次TDD'在这里),但我很想跳过测试......
我希望有人可以给我一些指导,我现在暂时无视山羊的声音。
答案 0 :(得分:-1)
我找到了解决方案。实际上这很简单。
我尝试在我的测试请求上设置我的cookie,这是有意义的,因为cookie应该在请求中发送。测试它的一种更好的方法是首先GET
一个资源(设置te cookie,这也会发生在正常的网络情境中),然后POST
设置cookie。这很好用。