|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?
跟着以后Java开辟的更加成熟,Agile和TDD的更加盛行,主动化测试的呼声也愈来愈高。若想将单位测试变得主动化,天然JUnit这把利器必不成少,这也是JUnit自1997年出生以来在Java开辟业界一向相称盛行的缘故原由。
JUnit是针对Java言语的一个单位测试框架,它被以为是迄今为止所开辟的最主要的第三方Java库。JUnit的长处是全部测试历程无需人的介入,无需剖析和判别终极测试了局是不是准确,并且能够很简单地一次性运转多个测试。JUnit的呈现增进了测试的流行,它使得Java代码更强健,更牢靠,Bug比之前更少。
JUnit自从问世以来一向在一直的推出新版本,今朝最新的版本是2007年7月公布的JUnit4.4,它是继JUnit4以来最年夜的刊行版,供应了良多有效的新特征。本文将假定读者已具有JUnit4的利用履历。
JUnit4.4概述
JUnit计划的目标就是无效地捉住编程职员写代码的企图,然后疾速反省他们的代码是不是与他们的企图相婚配。JUnit开展至今,版本一直的创新,可是一切版本都分歧努力于办理一个成绩,那就是怎样发明编程职员的代码企图,而且怎样使得编程职员加倍简单地表达他们的代码企图。JUnit4.4也是为了怎样可以更好的到达这个目标而呈现的。
JUnit4.4次要供应了以下三个小气面的新特征来更好的捉住编程职员的代码企图:
供应了新的断言语法(Assertionsyntax)——assertThat
供应了假定机制(Assumption)
供应了实际机制(Theory)
新的断言语法(Assertionsyntax)——assertThat
JUnit4.4进修JMock,引进了Hamcrest婚配机制,使得程序员在编写单位测试的assert语句时,能够具有更强的可读性,并且也加倍天真。
Hamcrest是一个测试的框架,它供应了一套通用的婚配符Matcher,天真利用这些婚配符界说的划定规矩,程序员能够加倍准确的表达本人的测试头脑,指定所想设定的测试前提。好比,偶然候界说的测试数据局限太准确,常常是多少个流动切实其实定值,这时候会招致测试十分懦弱,由于接上去的测试数据只需稍稍有变更,便可能招致测试失利(好比assertEquals(x,10);只能判别x是不是即是10,假如x不即是10,测试失利);偶然候指定的测试数据局限又不敷太准确,这时候有大概会形成某些本该会招致测试欠亨过的数据,仍旧会经由过程接上去的测试,如许就会下降测试的代价。Hamcrest的呈现,给程序员编写测试用例供应了一套划定规矩和办法,利用其能够加倍准确的表达程序员所希冀的测试的举动。(详细Hamcrest的利用,请参阅参考材料)
JUnit4.4分离Hamcrest供应了一个全新的断言语法——assertThat。程序员能够只利用assertThat一个断言语句,分离Hamcrest供应的婚配符,就能够表达全体的测试头脑。
assertThat的基础语法以下:
清单1assertThat基础语法
assertThat([value],[matcherstatement]);
value是接上去想要测试的变量值;
matcherstatement是利用Hamcrest婚配符来表达的对后面变量所希冀的值的声明,假如value值与matcherstatement所表达的希冀值符合,则测试乐成,不然测试失利。
<p>
轮性能微软曾做过一个例子,就是同一个项目用java和.net网页编程来作,结果开发周期,.net网页编程是java的一半,性能java是.net网页编程的十分之一,代码量java是.net网页编程的三倍。呵呵,这说明了什么,.net网页编程的全方位比java好。但是有的人说.net网页编程不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net网页编程很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net网页编程,只是推出了跨语言的.net网页编程, |
|