码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习-41.Python中的断言

时间:2014-09-30 01:59:51      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   使用   ar   sp   div   c   

先来点题外话:

在现代编程开发中,TDD(测试驱动开发)变得越来越流行(PS:DDD(领域驱动开发)也是,但两者并不冲突,就像面向过程和面向对象)。而作为TDD的根本——单元测试也是越来越重要,单元测试可以测试代码的正确性,例如以下的C#代码:

1 public class Helper
2 {
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中的断言

标签:style   blog   color   io   使用   ar   sp   div   c   

原文地址:http://www.cnblogs.com/h82258652/p/4001160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!