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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

使用@Rule在JUnit中测试文件和目录

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用@Rule在JUnit中测试文件和目录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多虧了TemporaryFolder @Rule在JUnit中使用文件和目錄進行測試很容易。

在JUnit中,規則( @Rule )可以替代或設置夾具設置和清除方法( org.junit.Before , org.junit.After , org.junit.BeforeClass和org.junit.AfterClass ),但是它們功能更強大,并且可以更輕松地在項目和類之間共享。

要測試的代碼

public void writeTo(String path, String content) throws IOException {Path target = Paths.get(path);if (Files.exists(target)) {throw new IOException("file already exists");}Files.copy(new ByteArrayInputStream(content.getBytes("UTF8")), target); }

上面的方法可以將給定的String內容寫入不存在的文件。 有兩種情況可以測試。

考試

public class FileWriterTest {private FileWriter fileWriter = new FileWriter();@Rulepublic TemporaryFolder temporaryFolder = new TemporaryFolder();@Rulepublic ExpectedException thrown = ExpectedException.none();@Testpublic void throwsErrorWhenTargetFileExists() throws IOException {// arrangeFile output = temporaryFolder.newFile("output.txt");thrown.expect(IOException.class);thrown.expectMessage("file already exists");// actfileWriter.writeTo(output.getPath(), "test");}@Testpublic void writesContentToFile() throws IOException {// arrangeFile output = temporaryFolder.newFolder("reports").toPath().resolve("output.txt").toFile();// actfileWriter.writeTo(output.getPath(), "test");// assertassertThat(output).hasContent("test").hasExtension("txt").hasParent(resolvePath("reports"));}private String resolvePath(String folder) {return temporaryFolder.getRoot().toPath().resolve(folder).toString();} }

TemporaryFolder規則提供了兩種方法來管理文件和目錄: newFile和newFolder 。 兩種方法都在setup方法中創建的臨時文件夾下返回所需的對象。 如果需要臨時文件夾本身的路徑,則可以使用TemporaryFolder getRoot方法。

無論測試成功與否,在測試完成時將添加到temp文件夾中的所有內容都會自動刪除。

這個例子可以在我在GitHub上的unit-testing-demo項目中找到,還有許多其他例子。

翻譯自: https://www.javacodegeeks.com/2015/01/testing-with-files-and-directories-in-junit-with-rule.html

總結

以上是生活随笔為你收集整理的使用@Rule在JUnit中测试文件和目录的全部內容,希望文章能夠幫你解決所遇到的問題。

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