《Python Web 开发-测试驱动开发》读书笔记(4)

16 篇文章 0 订阅

    3.7

    TDD中“单元测试/编写代码”循环:

    1. 在终端里运行单元测试,看他们是如何失败的;

    2. 在编辑器中改动最少量的代码,让当前失败的测试通过。

    然后不断重复。


    4.3

    不要测试常量,应该测试实现的方式。


    5.1

    坑6:form元素添加POST后页面会因为运行代码过快刷新导致测试时无法捕捉到id为id_list_table的元素

    在刷新后添加time.sleep(3)等待其刷新完成即可


    5.2

    测试结构:设置配置-执行代码-编写断言

    坑7:添加csrf_token后会导致test_home_page_returns_correct_html测试通过不了,因为django会将csrf_token解释为一串input元素,注释也没意义

    先删掉csrf_token,测试就能通过(比较无脑)

    另一种方法是用正则表达式将其处理掉。

    将通过request返回的html打印出来,会看到多了一串csrf_token衍生出来的东西

    

<input type='hidden' name='csrfmiddlewaretoken' value='tl2rZy1RBSLY75DD2ysZ4KHF0DePGWQs' />

    这一串东西在render_to_string方法中是不会渲染出来的,这就导致了直接渲染的结果和通过请求返回的结果不相等。按照书中的精神,编制少量代码,让测试通过,我用正则表达式将其去掉,保证其两边的相等。

    

CSRF_REGEX = r'<input[^>]+csrfmiddlewaretoken[^>]+>'
self.assertEqual(re.sub(CSRF_REGEX, '',response.content.decode()),  expected_html)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值