Python学习-41.Python中的断言,,先来点题外话:在现代
Python学习-41.Python中的断言,,先来点题外话:在现代
先来点题外话:
在现代编程开发中,TDD(测试驱动开发)变得越来越流行(PS:DDD(领域驱动开发)也是,但两者并不冲突,就像面向过程和面向对象)。而作为TDD的根本——单元测试也是越来越重要,单元测试可以测试代码的正确性,例如以下的C#代码:
1 public class Helper2 {3 public string RemoveHtmlMarkup(string str)4 {5 return str;6 }7 }
需求是去除字符串中的html标记。当然现在这样是错误的,只会原样输出。
接下来编写测试代码。(使用了NUnit)
1 [TestFixture] 2 public class HelperTest 3 { 4 [Test] 5 public void RemoveHtmlMarkupTest([Values("<html></html>")]string str) 6 { 7 var output = new Helper().RemoveHtmlMarkup(str); 8 Assert.False(output.Contains("<html>")); 9 }10 }
现在肯定是不通过的了。修改原来的代码,去除掉"<html>"然后再跑测试,过了,html标记不止这么点(还有title等等),然后测试代码修改,不通过,修改Helper的代码。这样反复进行,TDD就是这样。
当然这个例子可能并不是很好,将就一下吧。
好了,再继续就扯题了,回到Python中。
首先,令我想不到的是,Python中有断言,并且上升到了一等公民——关键字的水平。使用的关键字是assert。语法很简单,不像C#中Assert还得点(无论是MSUnit还是NUnit)。
1 var = input(‘please input 1:‘)2 assert var == ‘1‘,‘you must input 1‘
assert关键字后跟两个或一个参数。第一个参数是一个布尔值,如果该布尔值为False,则断言不通过,抛出一个AssertionError的错误,第二个参数是错误的描述,也可以不码上,但一般情况下还是码上吧。
呃,就是这几行,没了。Python就是这样简洁。
Python学习-41.Python中的断言
相关内容
- Python 安装setuptools和pip工具,,setuptools
- python基础学习11(核心编程第二版)部分,,#-*-coding
- python获取当前文件所在的绝对路径,,import osb
- [Python]递归汉诺塔,,move_count
- Python 注释和中文乱码,,Python 注释分
- 通过python的urllib.request库来爬取一只猫,,我们实验的网
- python关系运算符or、and注意点,,or运算符运算符从左
- Python-百度经纬度转高德经纬度,,import mat
- 小白的python之路Linux部分10/28&29,,属主属组其他人
- python字典顺序转字符串,,普通字典默认是无序的
评论关闭