3.4.4 商品信息的详情显示
查看商品信息详情的实现方法与查看商品信息列表在实现方法上基本相同。
1. urls.py
... url(r'^view_goods/(?P<good_id>[0-9]+)/$', views.view_goods), ...
在这里r'^view_goods/(?P<good_id>[0-9]+)/$'表示view_goods/后面跟着一个由数字组成的字符串,这个字符串定义为变量good_id,供views.py中使用。good_id为商品信息的id。
2. views.py
... # 查看商品信息详情 def view_goods(request,good_id): util = Util() username = util.check_user(request) if username=="": uf = LoginForm() return render(request,"index.html",{'uf':uf,"error":"请登录后再进入"}) else: count = util.cookies_count(request) good = get_object_or_404(Goods, id=good_id) return render(request, 'good_details.html', {"user": username,'good': good,"count":count}) ...
程序通过语句good = get_object_or_404(Goods, id=good_id)来获取所要显示商品的详细信息,然后通过变量good传递给模板进行显示。
3. 模板
good_details.html
{% extends "base.html" %} {% block content %} <li><a href="/view_chart/">查看购物车<font color="#FF0000">{{ count }}</font></a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="/user_info/">{{user}}</a></li> <li><a href="/logout/">退出</a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div class="container theme-showcase" role="main"> <!--商品详情信息--> <div style="margin-top:30px"> <div> <div> 单价:¥{{good.price}}元 <a href="/add_chart/{{good.id}}/2/">放入购物车</a><br> <img src="/{{good.picture}}"><br> {{good.desc}} </div><!-- /input-group --> </form> </div><!-- /.col-lg-6 --> </div><!-- /.row --> </div><!-- /container glyphicon glyphicon-phone border-style:none; --> {% endblock %}
代码通过<img src="/{{good.picture}}">来直接显示图片,再一次强调‘"’后紧跟着一个‘/’,不要忘记。商品详情信息显示如图3-13所示。
图3-13 商品详细信息显示
4. 接口测试
1)测试用例
表3-6为商品详情信息测试用例,测试目的是把测试数据中的商品信息插入到数据库中,检验这个商品的详细信息是否可以正确地被显示出来。
表3-6 商品详情信息测试用例
编号 |
描述 |
期望结果 |
1 |
显示当前商品的详细信息 |
当前的商品信息被正确地显示出来 |
2)XML文件
在这里仍旧使用initInfo.xml加入初始化商品数据。在测试数据文件goodsConfig.xml文件中增加如下内容。
... <!--- 显示当前商品的详细信息 --> <case> <TestId>goods-testcase002</TestId> <Title>商品信息</Title> <Method>get</Method> <Desc>显示商品详细信息</Desc> <Url>http://127.0.0.1:8000/view_goods/0/</Url> <InptArg></InptArg> <Result>200</Result> <CheckWord>龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶龙井茶叶</CheckWord><!--- 与初始化商品详细信息保持一致 --> </case> ...
3)测试代码
在这里接口测试的代码与前面相同,不需要做任何改动。
星云测试
奇林软件
联合通测
顾翔凡言:
软件测试正在生病,而且病得不轻,自动化测试被要不吹得太火,要不一点都不会,自动化比不过开发、测试又找不到缺陷,丢了西瓜也捡不到芝麻。