Python学习-41.Python中的断言
先来点题外话:
在现代编程开发中,TDD(测试驱动开发)变得越来越流行(PS:DDD(领域驱动开发)也是,但两者并不冲突,就像面向过程和面向对象)。而作为TDD的根本——单元测试也是越来越重要,单元测试可以测试代码的正确性,例如以下的C#代码:
public class Helper
{
public string RemoveHtmlMarkup(string str)
{
return str;
}
}
需求是去除字符串中的html标记。当然现在这样是错误的,只会原样输出。
接下来编写测试代码。(使用了NUnit)
[TestFixture]
public class HelperTest
{
[Test]
public void RemoveHtmlMarkupTest([Values("<html></html>")]string str)
{
var output = new Helper().RemoveHtmlMarkup(str);
Assert.False(output.Contains("<html>"));
}
}
现在肯定是不通过的了。修改原来的代码,去除掉"<html>"然后再跑测试,过了,html标记不止这么点(还有title等等),然后测试代码修改,不通过,修改Helper的代码。这样反复进行,TDD就是这样。
当然这个例子可能并不是很好,将就一下吧。
好了,再继续就扯题了,回到Python中。
首先,令我想不到的是,Python中有断言,并且上升到了一等公民——关键字的水平。使用的关键字是assert。语法很简单,不像C#中Assert还得点(无论是MSUnit还是NUnit)。
var = input('please input 1:')
assert var == '','you must input 1'
assert关键字后跟两个或一个参数。第一个参数是一个布尔值,如果该布尔值为False,则断言不通过,抛出一个AssertionError的错误,第二个参数是错误的描述,也可以不码上,但一般情况下还是码上吧。
呃,就是这几行,没了。Python就是这样简洁。
Python学习-41.Python中的断言的更多相关文章
- Python学习day09 - Python进阶(3)
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python学习day05 - Python基础(3) 格式化输出和基本运算符
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python学习笔记6-Python中re(正则表达式)模块学习
今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. re.match re.match 尝试从 ...
- Python学习day07 - Python进阶(1) 内置方法
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python学习笔记—Python基础1 介绍、发展史、安装、基本语法
第一周学习笔记: 一.Python介绍 1.Python的创始人为吉多·范罗苏姆.1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- python学习: 优秀Python学习资源收集汇总--转
Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl ...
- Python学习(002)--Python介绍
一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...
- 总结:Python学习 和 Python与C/C++交互
本篇仅仅是Python的学习和Python和C++数据对接过程中的一些总结. 由于工作的需要,用一周的时间学习 Python. Python是基于C实现的一门解释型语言,由于其易用性,俘获了不少开发者 ...
随机推荐
- 将2020年交期的PR回写出来了
OUT_pr表中的交期为2020年和2019年,不应该 回写的PR却回写出来了 优化如下:
- RN项目中关于父子组件的通信
子组件向父组件传递数据 子控件中在相应的函数中.通过props.coallback的回调通知父组件. 父组件调用callback属性时行 绑定,并在方法中去解析使用获取到的值 . //子控件: < ...
- for循环计算阶乘的和,for循环计算阶乘倒数的和
计算阶乘的和 //阶乘的和,5!+4!+3!+2! int a = 5; for(int b = 4; b > 0; b--) { a = a * b; } //先定义好最大数的阶乘是多少 in ...
- Ubuntu 16.04安装Git及GUI客户端
1.通过APT源安装Git命令行工具 这里不建议通过源码进行安装,增加复杂程度,且最新版本的Git在各个方面都会修复,不至于出现不能用的状态. sudo add-apt-repository ppa: ...
- iOS codeview
1.环境配置 oclint:http://oclint.org/ xcpretty:https://github.com/supermarin/xcpretty 使用Mac安装xcpretty过程可能 ...
- 2-Qt关闭子窗口时执行特定代码
https://blog.csdn.net/naibozhuan3744/article/details/82689434 本文主要总结在关闭qt的QWidget子窗口瞬间,执行特定代码.由于主窗口关 ...
- ViewPager 带动画的欢迎界面
一般APP进去之后都会有几张图片来导航,这里就学习怎么在这张图片切换的时候添加切换动画效果 先看布局文件 activity_main.layout <?xml version="1.0 ...
- discuz的css处理机制
common/common.css 是一个通用的css文件. common/module.css 是某个功能模块使用的css文件. module.css中,利用特殊语法: /** 标识 **/ c ...
- TEXTMETRICW 结构记录
if( flags == DT_RIGHT ) { SIZE Size = {,}; TEXTMETRICW temp; if (font->GetTextMetricsW(&temp) ...
- js和jquery获取span里面的值
JQ和Js获取span标签的内容 html: 1 <span id="content">‘我是span标签的内容’</span> javascript获取: ...