Quo Vadis JUnit
對(duì)我來(lái)說(shuō), JUnit是Java世界上最重要的庫(kù)。 但是我認(rèn)為它的新版本已經(jīng)過(guò)期。 通過(guò)將方法定義作為測(cè)試定義的方法,JUnit非常靈活,需要各種技巧……抱歉的功能,要做您實(shí)際上應(yīng)該能夠使用的基本(Java 8)語(yǔ)言功能。
如果您不確定我在說(shuō)什么,請(qǐng)查看有關(guān)ScalaTest的本文 。 像這樣的東西應(yīng)該是JUnit的標(biāo)準(zhǔn)。
當(dāng)然,您可以實(shí)現(xiàn)自己的TestRunner來(lái)實(shí)現(xiàn)類似目的。 但是已經(jīng)有許多重要的TestRunners( SpringJUnit4ClassRunner有人嗎?),它們的巨大缺點(diǎn)是您只能擁有其中的一個(gè)。
另一個(gè)替代方法是,與JUnit告別,并使用其他Testframework。 但是所有其他這些Testframeworks都沒(méi)有JUnit所提供的第三方工具的支持,因此我真的希望JUnit能夠發(fā)展,而不是被其他東西取代。
我思考這些問(wèn)題已經(jīng)有一段時(shí)間了,實(shí)際上將它們提出了JUnit郵件列表 ,并提供了許多有趣的反饋,但是什么也沒(méi)有發(fā)生。 因此,當(dāng)我遇到XP天的一個(gè)JUnit提交者M(jìn)arc時(shí) ,我們開始討論這種情況,另一位JUnit提交者Stefan和其他XP天的參與者也加入了討論。
而且通常沒(méi)有什么比看起來(lái)容易。 JUnit是一個(gè)非常成功的庫(kù),但是它也沒(méi)有提供人們想要或需要的所有功能。 這會(huì)導(dǎo)致人們以各種奇怪的方式使用JUnit,這使得它真的很難發(fā)展。 例如,Marc和Stefan講述了有關(guān)最新版本的JUnit的故事,他們了解到某個(gè)IDE在JUnit的私有字段上使用了反射,當(dāng)更改該字段的名稱時(shí)會(huì)導(dǎo)致“錯(cuò)誤”。
因此,似乎在進(jìn)行與其他默認(rèn)TestRunner一樣大的更改之前,必須先改造JUnit。
我設(shè)想如下所示:
- 收集其他人附加到JUnit上的各種功能,這些功能可能應(yīng)該是JUnit本身的一部分。
- 為那些提供干凈,受支持的API
- 施加輕微的壓力和時(shí)間讓第三方切換到新的API
- 該API的背后提供了一種更靈活的新方式來(lái)創(chuàng)建測(cè)試
- 利潤(rùn)
而且由于JUnit是一個(gè)開源項(xiàng)目,并且所有開發(fā)人員似乎都只能在自己的私人時(shí)間上工作,所以我們從XP Days開始,在那里收集需要考慮的內(nèi)容。 我將結(jié)果放在JUnit github存儲(chǔ)庫(kù)中的Wiki頁(yè)面中 。 到那邊看看是否可以添加一些東西。
翻譯自: https://www.javacodegeeks.com/2014/10/quo-vadis-junit.html
總結(jié)
以上是生活随笔為你收集整理的Quo Vadis JUnit的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 串号是什么意思
- 下一篇: 在Twitter上使用Apache Me