• ex47自动化测试


    1、这里用到了一个测试工具,nosetests,通过anaconda安装了nose程序包,然后使用了里边的assert_equal命令以及Nose.tool中的工具。

    Nose会自动查找源文件、目录或者包中的测试用例,符合正则表达式(?:^|[_.%s-])[Tt]est,以及TestCase的子类都会被识别并执行。
    例如:我们可以将python脚本文件名以“_test”结尾或包含“_test_”,方法名以“_test”结尾。
     
    关于nose暂时先只了解到这些,更多的后边遇到再理解。
    2、测试内容
    首先是需要进行测试的对象:
     1 #-*- coding: UTF-8 -*- 
     2 
     3 
     4 class Room(object):
     5     
     6     def __init__(self, name, description):
     7         self.name = name
     8         self.description = description
     9         self.paths = {}
    10         
    11     #get 函数,返回指定键的值,如果指定键不存在,则返回默认值None
    12     def go(self, direction):
    13         return self.paths.get(direction, None)
    14         
    15     def add_paths(self, paths):
    16         self.paths.update(paths)

    接着是测试骨架:

     1 #-*- coding: UTF-8 -*-
     2 from nose.tools import *
     3 from ex47.game import Room
     4 #测试模块中的__init__函数是否正常运行
     5 def test_room():
     6     gold = Room("GoldRoom",
     7                 """This room has gold in it you can grab.There's a 
     8                 door to the north.""")
     9     assert_equal(gold.name, "GoldRoom")#assert_equal是nose里边的函数,如果前后两个相等,就正常运行。
    10     assert_equal(gold.paths,{})
    11 #测试paths函数    
    12 def test_room_paths():
    13     center = Room("Center", "Test room in the center.")
    14     north = Room("North", "Test room in the north.")
    15     south = Room("South", "Test room in the south.")
    16     
    17     center.add_paths({'north': north, 'south': south})
    18     assert_equal(center.go('north'), north)
    19     assert_equal(center.go('south'), south)
    20 #测试通过go函数连接整个地图是否能够实现    
    21 def test_map():
    22     start = Room("Start", "You can go west and down a hole.")
    23     west = Room("Trees", "There are trees here, you can go east.")
    24     down = Room("Dungeon", "It's dark down here, you can gon up.")
    25     
    26     start.add_paths({'west': west, 'down': down})
    27     west.add_paths({'east':start})
    28     down.add_paths({'up': start})
    29     
    30     
    31     
    32     assert_equal(start.go('west'), west)
    33     assert_equal(start.go('west').go('east'), start)
    34     assert_equal(start.go('down').go('up'), start)

    这里提一下asseert_equal,如果前后两个相等,则测试正确。

    最后一条:别太把测试当做一回事,有时候更好的方法是把代码和测试全部删掉,然后重新设计代码。

  • 相关阅读:
    js 小数乘积位数太长
    微信浏览器跳转外部浏览器 app下载
    linux 查询制定目录的制定内容
    windows apache 跳转 tomcat 代理
    windows版 nginx配置反向代理实例教程 跳转tomcat和php网站
    概率论公式
    Python scipy 计算短时傅里叶变换(Short-time Fourier transforms)
    Centos 解决SSH 免密码登录 以及Crontab制作定时SSH自动登录和关闭的脚本
    python3 日志检索异常抛出异常 raise KeyError(key),KeyError: 'formatters'
    Pthon Matplotlib 画图
  • 原文地址:https://www.cnblogs.com/dingtou00/p/8151246.html
Copyright © 2020-2023  润新知