日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单元测试技巧:创建描述性测试

發布時間:2023/12/3 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单元测试技巧:创建描述性测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

您的單元測試應盡可能具有描述性。 他們給您的反饋應該非常清楚,您甚至不需要啟動調試器并一步一步地檢查代碼來檢查局部變量。 為什么? 因為那需要時間,而且我們很懶,對嗎? 為此,您需要創建描述性測試。 有多種實現方法。 這是其中兩個。

添加斷言消息

通常可以將斷言消息指定為測試斷言中的附加參數,并且在該特定測試用例失敗時,它們會作為失敗消息出現。

例如,在jUnit中,您可以指定斷言消息,例如:

assertEquals("The firstname of the two people should match if the clone was successful", "Fritz", person1.getFirstname());

另一方面,在MSTest中,必須將斷言消息作為最后一個參數添加。

Assert.AreEqual("Fritz", person1.Firstname, "The firstname of the two people should match if the clone was successful");

注意 ,不要“過度設計”。 我將這些注釋與其他代碼注釋類似地對待:如果它們添加了有意義的信息,則只需添加它們即可。 否則,它們就是浪費,因此就這樣對待它們。

首選顯式斷言

我所說的顯式斷言的意思是對執行的操作使用正確的斷言。 例如,如果您需要像前面提到的斷言中那樣執行相等性檢查,請不要使用布爾斷言語句。 (這里是一個虛擬的QUnit測試用例的示例)

test('Should correctly clone two people', 1, function(){//...ok(person1.firstname === 'Fritz', 'I expect both names to match if the clone operation succeeded'); });

…以及相應的結果在輸出窗口中:

這個結果并不是真正的描述性…

結果沒有告訴我們太多,對吧? 您可以說的是,此人的名字與您期望的名字不匹配,因此克隆操作可能不會成功。 但為什么?? 那它的實際價值是多少?

使用equals代替:

test('Should correctly clone two people', 1, function(){//...equal(person1.firstname, 'Fritz', 'I expect both names to match if the clone operation succeeded'); });

……結果又是:

哦,看那里,有描述性的結果。

現在,此測試用例的結果更具描述性。 它不僅告訴您操作失敗,而且還準確地向您顯示了預期值和實際值。 這可能會立即提示您可能存在問題的地方。

參考: 單元測試提示:在Juri Strumpflohner的TechBlog博客上,由我們的JCG合作伙伴 Juri Strumpflohner 創建描述性測試 。

翻譯自: https://www.javacodegeeks.com/2013/06/unit-testing-tip-create-descriptive-tests.html

總結

以上是生活随笔為你收集整理的单元测试技巧:创建描述性测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。