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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

junit测试类叫什么名字_使用Junit测试名称

發布時間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 junit测试类叫什么名字_使用Junit测试名称 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

junit測試類叫什么名字

命名測試

當我們創建Junit測試時,通常沒有方法名稱的實際使用。 Junit運行器使用反射來發現測試方法,并且從版本4開始,您不再被限制以test開始方法的名稱。 測試方法的名稱用于文檔目的。

人們遵循不同的風格。 您可以使用給定的given_Something_when_Something_then_Something樣式命名測試。 其他學校開始了與世界的方法的名稱should來描述被測對象“應該”做的。 我真的不明白為什么這比用test開頭方法的名稱要好得多。 如果所有方法都以相同的前綴開頭,那么這僅僅是噪聲。 這些天來,我傾向于將這些方法命名為關于SUT功能的簡單陳述。

如何訪問測試名稱?

從技術上講,只要名稱是唯一的,您就可以自由命名方法。 測試中通常不使用該名稱,并且測試結果不應取決于測試方法的實際名稱。 即使Junit支持一種訪問方法名稱的方法。

如果您有Junit規則

@Rule public TestName name = new TestName();

您可以在測試中引用對象name ,獲得實際方法的名稱為

String testName = name.getMethodName();

我們可以用它做什么?

有時,被測單元會創建一些巨大的結構,可以序列化為二進制或文本文件。 通常的做法是運行一次測試,檢查結果文件,如果可以,則將其保存以供以后比較。 以后的測試執行將實際結果與開發人員保存并檢查的結果進行比較。

在集成測試的情況下,如果對外部系統進行打樁,并且可以從某些本地測試數據文件中獲取其響應,而不用查詢外部服務,則可以使用類似的方案。

在這種情況下,可以使用測試名稱來創建存儲測試數據的文件名。 測試的名稱是唯一的,可以輕松地將數據與需要它的測試配對。 我在jscglib庫中使用了這種方法。 該庫提供了流利的API以創建Java源代碼。 測試包含一些Java構建器模式導演代碼,然后將生成的源代碼保存到文件中或與已存儲的結果進行比較。

要保存文件,使用了aux方法getTargetFileName

private String getTargetFileName() {String testName = name.getMethodName();String fileName = "target/resources/" + testName + ".java";return fileName;}

要獲取資源名稱,使用了getResourceName方法:

private String getResourceName() {String testName = name.getMethodName();return testName + ".java";}

之后,加載和保存生成的Java代碼變得輕而易舉:

private void saveGeneratedProgram(String actual) throws IOException {File file = new File(getTargetFileName());file.getParentFile().mkdirs();FileOutputStream fos = new FileOutputStream(file);byte[] buf = actual.getBytes("utf-8");fos.write(buf, 0, buf.length);fos.close();}private String loadJavaSource() {try {String fileName = getResourceName();InputStream is = this.getClass().getResourceAsStream(fileName);byte[] buf = new byte[3000];int len = is.read(buf);is.close();return new String(buf, 0, len, "utf-8");} catch (Exception ie) {return null;}}

通常,這是我知道的唯一示例,您可以將測試方法的名稱用于除文檔之外的其他名稱。

您不應該使用的名稱

用我的語言說:“每個人都擅長某事。 至少表明失敗。” 下面的示例演示了這種失敗。

我已經看到了將測試數據編碼為測試方法名稱的代碼。 訪問測試方法名稱的方式也很奇怪。 程序員可能不知道有一種支持方法的名稱的方法。 缺乏知識可能阻止了他或她行惡,但這個人是個天才。 測試的測試方法是調用幫助程序類的靜態方法。 該靜態方法引發異常,它也捕獲了該異常,并查看了堆棧跟蹤以識別調用方方法的名稱。

在訪問了該名稱之后,該代碼應用了正則表達式以從方法名稱中提取值。

摘要

我不知道Junit開發人員打算給我們類TestName 。 可能有一些用例需要該功能。 我確信他們沒有提供功能,因為有可能這樣做。 如果您不知道所提供的API有什么用處,則可能不應該僅僅因為可以就提供它。 新手程序員會錯誤地使用它而不是好的。

另一方面,如果您在API中看到可以使用的內容,則并不意味著您應該使用該功能。 您應該更好地了解該功能的目的,并相應地使用它。

編寫單元測試比命名它們更重要。 只要沒有單元測試,關于單元測試的命名的辯論就沒有用。

根據需要編寫單元測試,但不能更多。

翻譯自: https://www.javacodegeeks.com/2015/05/using-junit-test-name.html

junit測試類叫什么名字

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的junit测试类叫什么名字_使用Junit测试名称的全部內容,希望文章能夠幫你解決所遇到的問題。

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