Emacs lisp unit test framework

几经修改,终于让evil eval里面提到的Emacs lisp单元测试框架成形了。你可以通过http://www.wanglianghome.org/svn/test/test.el查看或下载,也可以通过subversion。

$ svn co http://www.wanglianghome.org/svn/test

里面还有一个小例子和一张截屏

test和其它单元测试框架有两点不同,首先是抛弃了suite概念,而改用tag,同一个case可以属于多个tag;其次是通过一个test-assert-compare函数包含了所以已经实现和还没有实现的、二元assert功能,这使得整个代码无需很长(除去开头的文档,250行左右),却可以提供更多的功能,而且接口很一致。除此之外,还给用户提供了一定的扩展能力,使其能够编写更复杂的assert函数。

第一次在emacswiki上添加了属于自己的一笔,在UnitTest页面Automated testing frameworks一节的末尾。:-)

Evil eval

lisp中的eval和C中的goto一样,都被人强烈建议不要使用。奈何咱水平有限,也只好evil一把了。

都是为了做单元测试,emacswiki上逛了一圈,没发现什么好用的,文档也有限,看看人家的代码不长,索性自己写一个吧,几个函数加一个macro搞定,只是用了eval。有了单元测试,写起代码来底气十足,再也不会像以前那样补了东墙弄倒西墙。尽管看common lisp的书要多一些,但代码还是写emacs lisp多。代码写得多了发现很多功能很容易实现,越写越想写,一天下来,几乎精疲力尽,其它的事情都不想做了。

写lisp程序真的很容易上瘾。