先来点题外话:

在现代编程开发中,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中的断言的更多相关文章

  1. Python学习day09 - Python进阶(3)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  2. Python学习day05 - Python基础(3) 格式化输出和基本运算符

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  3. Python学习笔记6-Python中re(正则表达式)模块学习

    今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. re.match re.match 尝试从 ...

  4. Python学习day07 - Python进阶(1) 内置方法

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  5. Python学习笔记—Python基础1 介绍、发展史、安装、基本语法

    第一周学习笔记: 一.Python介绍      1.Python的创始人为吉多·范罗苏姆.1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  6. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  7. python学习: 优秀Python学习资源收集汇总--转

    Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl ...

  8. Python学习(002)--Python介绍

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

  9. 总结:Python学习 和 Python与C/C++交互

    本篇仅仅是Python的学习和Python和C++数据对接过程中的一些总结. 由于工作的需要,用一周的时间学习 Python. Python是基于C实现的一门解释型语言,由于其易用性,俘获了不少开发者 ...

随机推荐

  1. fiddler 抓取 逍遥安卓模拟器 https包

    1.打开fiddler,进行相关设置 Tools--Fiddler Options 接下来进行客户端网络配置 1 查看电脑ip地址,ipconfig 逍遥游模拟器中使用自带的浏览器,访问192.168 ...

  2. Web标准:六、html列表

    Web标准:六.html列表 知识点: 1.ul无序和ol有序列表 2.改变项目符号样式或用图片定义项目符号 3.横向图文列表 4.浮动后父容器高度自适应 5.IE6的双倍边距bug   1)ul无序 ...

  3. Access to the path 'C:\inetpub\wwwroot\mysite\images\savehere' is denied.

    访问路径被拒绝 我解决了这个设置: IIS>应用程序池> [您的站点]>高级设置...>标识>内置帐户> LocalSystem

  4. Spring依赖注入:基于xml配置

    基础接口 BeanFactory.ApplicationContext. BeanFactory用于创建并管理.获取各种类的对象. ApplicationContext从BeanFactory派生而来 ...

  5. 对象池 object pool

    对象池适用于: 对象的创建很耗时 对象频繁地释放再创建 对象池的实现:将释放的对象放进对象池中,在新建对象时,从对象池取对象 public class ObjectPool<T> wher ...

  6. Linux找不到动态库

    首先系统上得有,只是路径问题 可使用ldd查看可执行程序的依赖库 以下都需要超级权限: find / -name libnet.so.9 // 可能在/usr/lib或/usr/local/lib中 ...

  7. 乱序字符串anagrams

    [抄题]: 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram).如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中. 对于字符串数组 ["lin ...

  8. [leetcode]560. Subarray Sum Equals K 和为K的子数组

    Given an array of integers and an integer k, you need to find the total number of continuous subarra ...

  9. [leetcode]199. Binary Tree Right Side View二叉树右侧视角

    Given a binary tree, imagine yourself standing on the right side of it, return the values of the nod ...

  10. xmlhttp

    File an issue about the selected textFile an issue about the selected text XMLHttpRequest Living Sta ...